Understanding noise removal method using wavelets I am trying to understand how wavelet transform can be used to denoise a time series or signal and how to plot the scalogram image. My signal has a lot of fluctuations and as such I am finding it difficult to denoise. Morevoer, to plot the scalogram I need to know the frequency. I don't know what is the frequency for this particular kind of time series obtained from a dynamical system of the form: Logistic Map given by:
$$x[n] = 4\big(x[n-1]\big)\big(1-x[n-1]\big)$$
Systems similar to this type of dynamical systems are the Lorenz, Mackey-Glass. Can somebody please help:

How to properly denoise the signal? As observed, from the plot the denoised signal denoised does not look exactly the same as the clean signal x (black dotted line), so what are other parameters or wavelet types that I could use and how to decide which ones to use. Is there a rule of thumb?

What is the sampling and nyquist frequency for this kind of signal and

how to plot the scalogram image: I used wt() to obtain the wavelet coefficients. After that how to plot the image of scalogram so that X axis is time and Y axis is Frequency?
 x(1) = 0.1; % initial condition (can be anything from 0 to 1)
 M = 50; %number of data points (length of the time series)
 for n = 2:M, % iterate
     x(n) = 4*x(n-1)*(1-x(n-1));
 end

 %add noise
 x_noise = awgn(x,10,'measured');

 %denoise using wavelet
 denoised = wdenoise(x_noise, 3,'Wavelet','db3',...
     'DenoisingMethod','Bayes',...
     'ThresholdRule','Median',...
     'NoiseEstimate','LevelIndependent');
 figure
 plot(x_noise)
 axis tight
 hold on
 plot(denoised,'r')

 fb = cwtfilterbank('SignalLength',M);
 [cfs,frq] = wt(fb,denoised);
Your signal (with initial par x0 =0.1) is already noise like and high frequency. It will be hard to distinguish it from the added white noise... One thing you can do is to interpolate (resample) the time series by a large enough factor and then later add the white noise. This will artifically help to separate the noise spectrum and your signal spectrum but the signal lengths will also be increased. whether it is what you have to do is up to you !
The following modification apparently improves the noise removal, but fundamentlaly it's separating the noise spectrum from the signal. So whether this is a viable option is upto your applications:
 M = 50;        % number of data points (length of the time series)
 
 x(1) = 0.5;    % initial condition (can be anything from 0 to 1)
 for n = 2:M,   % iterate
     x(n) = 4*x(n-1)*(1-x(n-1));
 end
 
 U = 10;       % interpolation factor 
 xU = resample(x,U,1);  % just interpolate the obtained sequence
 
 % add noise onto the interpolated sequence xU
 x_noise = awgn(xU , 10 , 'measured');

 %denoise using wavelet
 denoised = wdenoise(x_noise, 3,'Wavelet','db3',...
     'DenoisingMethod','Bayes',...
     'ThresholdRule','Median',...
     'NoiseEstimate','LevelIndependent');
 
 denoised = resample(denoised,1,U);   % downsample de-noised sequence back
 
 figure
 plot(x_noise(1:10:end))   % down-sample noisy seqeunce on the fly for displaying
 axis tight
 hold on
 plot(denoised,'r')
 plot(x,'c--');
 legend('noisy','denoised','clean');

 fb = cwtfilterbank('SignalLength',M);
 [cfs,frq] = wt(fb,denoised);

The result looks like :