- 34
- 0
- 约1.02万字
- 约 27页
- 2017-05-21 发布于浙江
- 举报
数字信号处理上机实验matlab程序及结果
研究生《数字信号处理》(dsp)
上机MATLAB实验
实验1熟悉MATLAB环境,会用FFT求信号频谱,相关方法去除噪声。
%生成一个带有噪声的正弦信号
clear;
t=linspace(-2*pi,2*pi,1000);
y=sin(t)+rand(1,1000);
plot(y);
波形图:
%把带有噪声的正弦信号进行FFT分解
z=fft(y);
plot(t,z);
波形图:
%用相关方法除噪声
f=xcorr(y,y);
plot(f);
波形图:
实验2利用相关算法求信号的幅值和相位
%用相关性求信号的幅值与相位
clear;
t=linspace(-2*pi,2*pi,1000);
s=5*sin(t+pi/6)+rand(1,1000);
y=3*sin(t)+rand(1,1000);
ss=s.*s;
sy=s.*y;
yy=y.*y;
x1=length(ss);
x2=length(yy);
x3=length(sy);
rx0=sum(ss)/x1;
ry0=sum(yy)/x2;
rxy0=sum(sy)/x3;
A=sqrt(2*rx0);
B=sqrt(2*ry0);
C=acos(2*rxy0/(A*B));
sprintf(A=%d,B=%d,C=%d,A,B,C)
命令窗口输出结果:
A=5.086632e+00,B=3.109529e+00,C=5.355640e-01
%用改进的相关算法求幅值和相位
clear;
t=linspace(-2*pi,2*pi,1000);
s=5*sin(t+pi/6)+rand(1,1000);
z=3*sin(t);
z1=3*cos(t);
zz=z.*z;
sz=s.*z;
sz1=s.*z1;
x1=length(sz);
x2=length(zz);
x3=length(sz1);
rz=sum(zz)/x2;
rsz=sum(sz)/x1;
rsz1=sum(sz1)/x3;
B=sqrt(2*rz);
C=atan(rsz1/rsz);
A=2*rsz/(B*cos(C));
sprintf(A=%d,B=%d,C=%d,A,B,C)
命令窗口输出结果:
A=4.986266e+00,B=2.998500e+00,C=5.264407e-01
实验三设计一个巴尔低通滤波器
%设计一个巴尔沃特低通滤波器,fp=1khz,fs=2khz,ap=1db,as=40db;
fp=1000;
fs=2000;
wp=2*pi*fp;
ws=2*pi*fs;
ap=1;
as=40;
[n,wc]=buttord(wp,ws,ap,as,s);
fprintf(阶数为%d\n,n);
[num,den]=butter(n,wc,s);
%[z,p,k]=buttap(n);
disp(分子多项式系数分别为);
fprintf(%.4e\n,num);
disp(分母多项式系数分别为);
fprintf(%.4e\n,den);
w=[wp ws];
h1=freqs(num,den,w);
fprintf(Ap=%.4e\n,-20*log10(abs(h1(1))));
fprintf(As=%.4e\n,-20*log10(abs(h1(2))));
w1=[0:200:12000*pi];
h=freqs(num,den,w1);
gain=20*log10(abs(h));
plot(w1/(2*pi),gain);
xlabel(Hz);
ylabel(dB);
title(幅频特性);
输出结果:
阶数为8
分子多项式系数分别为
0.0000e+00
0.0000e+00
0.0000e+00
0.0000e+00
0.0000e+00
0.0000e+00
0.0000e+00
0.0000e+00
6.2187e+30
分母多项式系数分别为
1.0000e+00
3.6222e+04
6.5603e+08
7.7093e+12
6.4060e+16
3.8498e+20
1.6360e+24
4.5108e+27
6.2187e+30
Ap=6.1668e-01
As=4.0000e+01
图形为
实验四 设计一个高通滤波器
%设计一个高通滤波器fp=5khz,fs=1khz,ap=1db,as=40db;
fp=5000;
fs=1000;
ap=1;
as=40;
wp=1/(2*pi*fp);
ws=1/(2*pi*fs);
[n,wc]=buttord(wp,ws,ap,as,s);
disp(阶数为);
disp(n);
[num,den]=butter(n,wc,s);
[numt,dent]=lp2hp(num,
原创力文档

文档评论(0)