Filter löschen
Filter löschen

How to get equation of signal in matlab

12 Ansichten (letzte 30 Tage)
Muhammad Usman Saleem
Muhammad Usman Saleem am 15 Jul. 2017
Kommentiert: Star Strider am 24 Jul. 2017
I want to find equation of this signal.
I plot this time series data and filter it with sSgolay filter. Now I want to get equation of this signal. Is this possible in matlab??
I have attached data of this plot with this post
  4 Kommentare
Muhammad Usman Saleem
Muhammad Usman Saleem am 20 Jul. 2017
@Grej Thanks for your reply. I have not expertise in neural network. So I not know whether this network has created for such meteorological problems. In matlab I know there are some models like AR, ARMA which simulate the data set then forecast it. I tried them alot but unable to fit them due to lacking in expertise.
How can I forecast snow for one day ahead using this time series data set?
Greg Heath
Greg Heath am 20 Jul. 2017
Hope this helps.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Star Strider
Star Strider am 15 Jul. 2017
I am not certain what you intend by getting an equation for it.
You can filter out the noise to see the general trend:
fidi = fopen('data.txt','rt');
D = textscan(fidi, '%s%f', 'Delimiter','\t', 'CollectOutput',1);
t = datenum(D{1});
s = D{2};
Ts = mean(diff(t)); % Sampling Interval
Fs = 1/Ts; % Sampling Frequency
Fn = Fs/2; % Nyquist Frequency
L = numel(t); % Signal Length
sm = s-mean(s); % Subtract Mean To Make Amplitudes At Frequencies>0 More Prominent
FTs = fft(sm)/L; % Fourier Transform
Fv = linspace(0, 1, fix(L/2)+1)*Fn; % Frequency Vector
Iv = 1:length(Fv); % Index Vector
Phs = angle(FTs);
plot(Fv, abs(FTs(Iv))*2)
xlabel('Frequency (Days^{-1})')
set(gca, 'XLim',[0 0.05])
Wp = [0.0045]/Fn; % Passband Frequencies (Normalised)
Ws = [0.0055]/Fn; % Stopband Frequencies (Normalised)
Rp = 10; % Passband Ripple (dB)
Rs = 50; % Stopband Ripple (dB)
[n,Ws] = cheb2ord(Wp,Ws,Rp,Rs); % Filter Order
[z,p,k] = cheby2(n,Rs,Ws); % Filter Design
[sosbp,gbp] = zp2sos(z,p,k); % Convert To Second-Order-Section For Stability
freqz(sosbp, 2^16, Fs) % Filter Bode Plot
s_filt = filtfilt(sosbp,gbp, s); % Filter Signal
plot(t, s, '-b')
hold on
plot(t, s_filt, '-r', 'LineWidth',1.5)
hold off
xlabel('Time (Days)')
legend('Original', 'Lowpass Filtered')
  8 Kommentare
Muhammad Usman Saleem
Muhammad Usman Saleem am 24 Jul. 2017
Thank you sir so much!
Star Strider
Star Strider am 24 Jul. 2017
As always, my pleasure!
If my Answer helped solve your problem, please Accept it.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)


Mehr zu Sequence and Numeric Feature Data Workflows finden Sie in Help Center und File Exchange


Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by