matlab 代码解释,新手求教,谁能解释一下matlab代码

Fs = 1000;

T = 1/Fs;

L = 1000;

t = (0:L-1)*T;

x= 70*sin(2*pi*20*t) + 10*sin(2*pi*75*t);  %加入20HZ和75HZ的信号

y =x+ 10*randn(size(t));     % 混入噪声信号

fs=Fs;%10000

N=1/fs;%1200;

plot(y);  %画出输入信号

title('输入信号'); %标题

xlabel('t/y');

ylabel('幅度');

%设计低通滤波器:

Wp = 100/fs;

Ws = 600/fs;

[n,Wn] = buttord(Wp,Ws,1,80);

[a,b]=butter(n,Wn);

[h,f]=freqz(a,b,'whole',fs);

f=(0:length(f)-1)'*fs/length(f);

putong=filter(a,b,y);

%

NFFT = 2^nextpow2(L); % 求得最接近总采样点的 2^n,这里应该是 2^10=1024

Y = fft(y,NFFT)/L;   %进行 fft 变换(除以总采样点数,是为了后面精确看出

%原始信号幅值)

f = Fs/2*linspace(0,1,NFFT/2+1);%频率轴(只画到 Fs/2 即可,由于 y 为实数,

%后面一半是对称的)

figure

% 画出频率幅度图形,可以看出 50Hz 幅值大概 0.7,120Hz 幅值大概为 1.

plot(f,2*abs(Y(1:NFFT/2+1)))  %画出频幅图

title('Single-Sided Amplitude Spectrum of y(t)')

xlabel('Frequency (Hz)')

ylabel('|Y(f)|')

%

figure

plot(putong,'k');     %画出传统的巴特沃斯滤波器,黑色

hold on

Wp = 40/fs;

Ws = 600/fs;

[n,Wn] = buttord(Wp,Ws,1,80);

[a,b]=butter(n,Wn);

[h,f]=freqz(a,b,'whole',fs);

f=(0:length(f)-1)'*fs/length(f);

plot(y)  %在对比图上面画出输入信号

sF=filter(a,b,y);

hold on

plot(x,'r');  %画出改进的巴特沃斯滤波器,并用红色(画出sf)等同于%plot sf

title('巴特沃斯滤波滤波效果对比');

legend(' 输入信号','','');

y=x;

NFFT = 2^nextpow2(L); % 求得最接近总采样点的 2^n,这里应该是 2^10=1024

Y = fft(y,NFFT)/L;   %进行 fft 变换(除以总采样点数,是为了后面精确看出

%原始信号幅值)

f = Fs/2*linspace(0,1,NFFT/2+1);%频率轴(只画到 Fs/2 即可,由于 y 为实数,

%后面一半是对称的)

figure

% 画出频率幅度图形,可以看出 50Hz 幅值大概 0.7,120Hz 幅值大概为 1.

plot(f,2*abs(Y(1:NFFT/2+1)))

title('Single-Sided Amplitude Spectrum of y(t)')

xlabel('Frequency (Hz)')

ylabel('|Y(f)|')

小弟刚学matlab,对于前面的输入信号还能看懂,到后面就不太懂了,求大神们帮忙解读一下。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值