📄 dsp.m
字号:
%信号的传送,提取及分析
f=1000;%正弦信号频率
F=44000;%采样频率
A=1;
n=1:F;
s=wavrecord(44000,44000,1);
s=s';
%s=A*cos(2*pi*f*n/F);%信号产生
%S=fftshift(fft(s));
%plot(2/F*n-1,abs(S),'*')
figure(1)
plot(n,s);%绘制信号波形
axis([1,3*F/f,-2*A,2*A]);
title('signal'),xlabel('t'),ylabel('s(t)');
sn=s+normrnd(0,A,1,F);%信号+噪声
figure(2)
t=1:fix(3*F/f);
psn=sn(1:3*F/f);
plot(t,psn);%绘制信号+噪声波形
title('signal+noise'),xlabel('t'),ylabel('s(t)+n(t)');
Y=fftshift(fft(sn));%信号+噪声的频谱
figure(3)
plot(2*(n-1)/F-1,abs(Y));%绘制信号+噪声的频谱
title('signal+noise fourier transform'),xlabel('w/pi'),ylabel('S(w)+N(w)');
p=5000;%低通滤波器带宽
f1=[0,2*p/F,2*p/F,1];
m=[1 1 0 0];
b=fir2(40,f1,m);%低通滤波器设计
figure(4)%幅频响应
[h,w]=freqz(b,1,128);
plot(w/pi,abs(h));
title('lowpass filter'),xlabel('w/pi'),ylabel('H(w)');
sn1=conv(sn,b);%信号通过低通滤波器
Y1=fftshift(fft(sn1));%信号+噪声通过低通滤波器的频谱
figure(5)
t=1:max(size(Y1));
plot(2/max(size(Y1))*t-1,abs(Y1));%绘制信号+噪声通过低通滤波器的频谱
title('signal+noise passing the lowpass filter'),xlabel('w/pi'),ylabel('S(w)+N(w)');
for i=1:fix(F/f) %平均法求得信号
sum=0;
for j=1:f
sum=sum+sn1(i+fix(F/f)*(j-1));
end
signal(i)=sum/f;
end
sign=[signal signal signal];
figure(6)
plot(sign)
S=fftshift(fft(signal));
figure(7)
t=1:max(size(S));
plot(2*(t-1)/(F/f)-1,abs(S));
title('signal recovery'),ylabel('s1(t)');
disp('信号均值');
Ex1=mean(signal)
disp('信号方差值');
D=var(signal)
%信号和噪声的自相关函数
disp('信号和噪声自相关函数');
R=xcorr(signal,signal);
figure(8)%自相关函数图像
t=1:max(size(R));
plot(t-44,R);
%axis([1000,2000,-0.6,0.6])
title('自相关函数示意图像');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -