数字信号处理 实验报告 打印Word格式.docx
《数字信号处理 实验报告 打印Word格式.docx》由会员分享,可在线阅读,更多相关《数字信号处理 实验报告 打印Word格式.docx(18页珍藏版)》请在冰豆网上搜索。
幅度为1,脉冲宽度占空比duty=50,%周期T=5的周期方波脉冲信号的产生。
T=5,t=-2*T:
0.01:
2*T;
duty=50;
%duty—信号为正的区域在一个周期内所占的百分比;
x=square(t,duty);
subplot(2,2,1)
plot(t,x)
title('
连续时间函数-周期方波脉冲'
)%title—标出图名;
axis([-10,10,-1.2,1.2])
例五:
幅度为±
1,周期T=4的三角波脉冲信号的产生
T=4;
t=-2.5*T:
2.5*T;
x=sawtooth(t-2*T/3,0.5);
%sawtooth(x,width):
三角波函数,width为该位置的横坐标和周期的比值(0-1的标量)。
width=1时产生锯齿波,width=0.5时产生标准对称三角波;
subplot(3,3,1);
plot(t,x);
周期三角波脉冲,T=4'
axis([-10,10,-1.2,1.2]);
实验二
clear;
closeall;
N=64;
n=[0:
N-1];
A=[1,-0.9];
B=[0.05,0.05];
%系统差分方程系数向量;
x=[n==0];
%产生deta(n);
x1n=[11111111zeros(1,56)];
%产生
x2n=ones(1,64);
%产生
hn=filter(B,A,x);
%filter求系统对序列x的响应;
subplot(2,2,1);
stem(n,hn,'
line([0,64],[0,0]);
axis([0,64,0,0.1]);
(a)系统单位脉冲响应h(n)'
y1n=filter(B,A,x1n)%求系统对序列x1n的响应;
subplot(2,2,2);
stem(n,y1n,'
axis([0,64,0,0.6]);
(b)系统对R8(n)的响应y1(n)'
y2n=filter(B,A,x2n);
%求系统对序列x2n的响应;
subplot(2,2,4);
stem(n,y2n,'
axis([0,64,0,1]);
(c)系统对u(n)的响应y2(n)'
clearall
x1n=[11111111];
N=8;
M1=10;
M2=4;
h1n=ones(1,10);
h2n=[12.52.51];
y1n=conv(x1n,h1n);
%conv求卷积;
y2n=conv(x1n,h2n);
L1=N+M1-1;
L2=N+M2-1;
n1=0:
L1-1;
n2=0:
L2-1;
stem(n1,y1n,'
line([0,20],[0,0]);
axis([0,20,0,10]);
(d)h1(n)与R8(n)的卷积'
stem(n2,y2n,'
line([0,15],[0,0]);
axis([0,15,0,10]);
(e)h2(n)与R8(n)的卷积'
un=ones(1,256);
%产生信号un
n=0:
255;
xsin=sin(0.014*n)+sin(0.4*n);
%产生正弦信号
A=[1,-1.8237,0.9801];
B=[1/100.49,0,-1/100.49];
%系统差分方程系数向量B和A
y31n=filter(B,A,un);
%谐振器对un的响应y31n
y32n=filter(B,A,xsin);
%谐振器对正弦信号的响应y32n
figure(3)
subplot(2,1,1);
stem(n,y31n,’.’)
title(′(f)谐振器对u(n)的响应y31(n)′)
subplot(2,1,2);
stem(n,y32n,’.’)
title(′(g)谐振器对正弦信号的响应y32(n)′)
实验三
clearall;
x1n=ones(1,4);
N1=8;
N2=16;
k1=0:
N1-1;
k2=0:
N2-1;
w1=k1*2/N1;
w2=k2*2/N2;
%k1和k2是频域取样点的取值区间,w1和w2是将k值转换为归一化频率;
M=8;
xa=1:
(M/2);
xb=(M/2):
-1:
1;
x2n=[xa,xb];
%构造x2n
x3n=[xb,xa];
X1k8=fft(x1n,8);
X1k16=fft(x1n,16);
X2k8=fft(x2n,8);
X2k16=fft(x2n,16);
X3k8=fft(x3n,8);
X3k16=fft(x3n,16);
stem(w1,abs(X1k8),'
(1a)8点DFT[x1(n)]'
w/pi'
幅度'
axis([0,2,0,1.2*max(abs(X1k8))]);
stem(w2,abs(X1k16),'
(1b)16点DFT[x1(n)]'
axis([0,2,0,1.2*max(abs(X1k16))]);
figure
(2)%创建图形窗
stem(w1,abs(X2k8),'
(1c)8点DFT[x2(n)]'
axis([0,2,0,1.2*max(abs(X2k8))]);
stem(w2,abs(X2k16),'
(1d)16点DFT[x2(n)]'
axis([0,2,0,1.2*max(abs(X2k16))]);
subplot(2,2,3);
stem(w1,abs(X3k8),'
(1e)8点DFT[x3(n)]'
axis([0,2,0,1.2*max(abs(X3k8))]);
stem(w2,abs(X3k16),'
(1f)16点DFT[x3(n)]'
axis([0,2,0,1.2*max(abs(X3k16))]);
15;
x1n=cos(pi*n/4);
x2n=cos(pi*n/4)+cos(pi*n/8);
(2a)8点DFT[x1(n)]'
(2b)16点DFT[x1(n)]'
(2c)8点DFT[x2(n)]'
(2d)16点DFT[x2(n)]'
Fs=64;
T=1/Fs;
N=16;
N-1;
xnT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T);
%对x(t)取样;
Xk16=fft(xnT,16);
Xk16=fftshift(Xk16);
%将0频率移到频谱中心;
Tp=N*T;
F=1/Tp;
%求频率分辨率F
k=-N/2:
N/2-1;
fk=k*F;
subplot(3,1,1);
stem(fk,abs(Xk16),'
(3a)16点|DFT[x(nT)]|'
f(Hz)'
axis([-N*F/2-1,N*F/2-1,0,1.2*max(abs(Xk16))]);
N=32;
Xk32=fft(xnT,32);
Xk32=fftshift(Xk32);
subplot(3,1,2);
stem(fk,abs(Xk32),'
(3b)32点|DFT[x(nT)]|'
axis([-N*F/2-1,N*F/2-1,0,1.2*max(abs(Xk32))]);
Xk64=fft(xnT,64);
Xk64=fftshift(Xk64);
subplot(3,1,3);
stem(fk,abs(Xk64),'
(3c)64点|DFT[x(nT)]|'
axis([-N*F/2-1,N*F/2-1,0,1.2*max(abs(Xk64))]);
实验四
functionst=mstg%编写程序mstg,供后面调用;
N=1600;
Fs=10000;
%N为信号s(t)的长度;
采样频率Fs=10kHz;
t=0:
T:
(N-1)*T;
k=0:
f=k/Tp;
fc1=Fs/10;
%第一路调幅信号的载波频率fc1=1kHz;
fm1=fc1/10;
%第一路调幅信号的调制信号频率fm1=100Hz;
fc2=Fs/20;
%第二路调幅信号的载波频率fc2=500Hz;
fm2=fc2/10%第二路调幅信号的调制信号频率fm2=50Hz;
fc3=Fs/40;
%第三路调幅信号的载波频率fc3=250Hz;
fm3=fc3/10;
%第三路调幅信号的调制信号频率fm3=25Hz;
xt1=cos(2*pi*fm1*t).*cos(2*pi*fc1*t);
%产生第一路调幅信号;
xt2=cos(2*pi*fm2*t).*cos(2*pi*fc2*t);
%产生第二路调幅信号;
xt3=cos(2*pi*fm3*t).*cos(2*pi*fc3*t);
%产生第三路调幅信号;
st=xt1+xt2+xt3;
%三路信号叠加形成时域混叠信号;
fxt=fft(st,N);
%计算信号st的频谱
plot(t,st);
grid;
%plot线性x-y坐标绘图;
图上加坐标网格;
t/s'
s(t)'
axis([0,Tp/2,min(st),max(st)]);
(a)s(t)的波形'
stem(f,abs(fxt)/max(abs(fxt)),'
%stem离散序列绘图;
(b)s(t)的频谱'
axis([0,Fs/5,0,1.2]);
f/Hz'
M=1600;
(M-1)*T;
st=mstg;
%调用子程序mstg;
%==============以下为低通滤波器的设计与实现======================
fp=280;
fs=450;
wp=2*fp/Fs;
ws=2*fs/Fs;
rp=0.1;
rs=60;
%获取数字滤波器的指标;
[N,wp]=ellipord(wp,ws,rp,rs);
%计算椭圆DF的阶数N;
[B,A]=ellip(N,rp,rs,wp);
%计算椭圆低通DF系统函数系数向量B和A;
[h1w,w]=freqz(B,A);
%计算DF的频率响应
y1t=filter(B,A,st);
%对信号st进行滤波
figure
(2);
%figure创建图形窗;
plot(w/pi,20*log10(abs(h1w)));
grid%grid图上加坐标网络;
axis([0,1,-100,10]);
幅度(dB)'
plot(t,y1t);
grid
axis([0,0.1,-1.5,1.5]);
y1(t)'
%===============以下为带通滤波器的设计与实现=========================
fpl=440;
fpu=560;
fsl=275;
fsu=900;
wp=[2*fpl/Fs,2*fpu/Fs];
ws=[2*fsl/Fs,2*fsu/Fs];
[h2w,w]=freqz(B,A);
y2t=filter(B,A,st);
figure(3);
plot(w/pi,20*log10(abs(h2w)));
plot(t,y2t);
y2(t)'
%===============以下为高通滤波器的设计与实现====================
fp=890;
fs=600;
[B,A]=ellip(N,rp,rs,wp,'
high'
[h3w,w]=freqz(B,A);
y3t=filter(B,A,st);
figure(4);
plot(w/pi,20*log10(abs(h3w)));
plot(t,y3t);
y3(t)'
实验五
functionxt=xtg(N)%信号x(t)产生函数,并显示信号的幅频特性曲线
%xt=xtg产生一个长度为N,有加性高频噪声的单频调幅信号xt,采样频率Fs=1khz
%载波频率fc=Fs/10=100Hz,调制正弦波频率f0=Fc/10=10Hz
N=2000;
Fs=1000;
fc=Fs/10;
f0=fc/10;
%载波频率fc=Fs/10,单频调制信号频率为f0=fc/10
mt=cos(2*pi*f0*t);
%产生单频正弦波调制信号mt,频率为f0
ct=cos(2*pi*fc*t);
%产生载波正弦波信号ct,频率为fc
xt=mt.*ct;
%相乘产生单频调制信号xt
nt=2*rand(1,N)-1;
%产生随机噪声nt
%=========设计高通滤波器hn,用于滤除噪声nt中的低频成分,生成高频噪声=====
fp=150;
fs=200;
rs=70;
%滤波器指标
fb=[fp,fs];
m=[0,1];
%计算remenzord函数所需参数f,m,dev
dev=[10^(-rs/20),(10^(rp/20)-1)/(10^(rp/20)+1)];
[n,fo,mo,w]=remezord(fb,m,dev,Fs);
%确定remenz函数所需参数
hn=remez(n,fo,mo,w);
%调用remenz函数进行设计,用于滤除噪声nt中的低频成分
yt=filter(hn,1,10*nt);
%滤除随机噪声中低频成分,生成高频噪声yt
%===================================================================
xt=xt+yt;
%噪声加信号
fst=fft(xt,N);
plot(t,xt);
x(t)'
axis([0,0.5,min(xt),max(xt)]);
(a)信号加噪声波形'
subplot(3,2,2);
plot(f,abs(fst)/max(abs(fst)));
(b)信号加噪声的频谱'
axis([0,Fs/2,0,1.2]);
%=====调用xtg产生信号xt,xt长度N=1000,并显示xt及其频谱===========
N=1000;
xt=xtg(N);
fp=120;
fs=150;
rp=0.2;
%输入给定指标
T=1/Fs;
k=0:
f1=k/Tp;
%
(1)用窗函数法设计滤波器
wc=(fp+fs)/Fs;
%理想低通滤波器截止频率(关于pi归一化)
B=2*pi*(fs-fp)/Fs;
%过渡带宽度指标
Nb=ceil(11*pi/B);
%blackman窗的长度N
hn=fir1(Nb-1,wc,blackman(Nb));
ywt=fftfilt(hn,xt,N);
f=[f1,zeros(1,length(ywt)-1)];
%调用函数fftfilt对xt滤波
[length(ywt)-1]*T;
subplot(3,2,5);
plot(t,ywt);
grid;
(c)滤除噪声后的信号波形'
axis([0,0.5,-1,1]);
yw(t)'
%=======
(2)用等波纹逼近法设计滤波器========================
m=[1,0];
%确定remenzord函数所需参数f,m,dev
dev=[(10^(rp/20)-1)/(10^(rp/20)+1),10^(-rs/20)];
[Ne,fo,mo,W]=remezord(fb,m,dev,Fs);
hn=remez(Ne,fo,mo,W);
%调用remenz函数进行设计
yet=fftfilt(hn,xt,N);
f=[f1,zeros(1,length(yet)-1)];
subplot(3,2,6);
plot(t,yet);
(d)滤除噪声后的信号波形'
ye(t)'