数字信号作业1.docx
- 文档编号:28429685
- 上传时间:2023-07-13
- 格式:DOCX
- 页数:38
- 大小:324.64KB
数字信号作业1.docx
《数字信号作业1.docx》由会员分享,可在线阅读,更多相关《数字信号作业1.docx(38页珍藏版)》请在冰豆网上搜索。
数字信号作业1
作业1:
x(t)=sin(2*pi*480*t)+2*sin(2*pi*490*t),
(
)若要在x(t)的频谱上分辨出这两个频率,且保证频谱不混叠,采样频率和信号时长至少要取多大?
(
)
以1KHz的采样率采128个点,做128点FFT,画出频谱图;
以1KHz的采样率采256个点,做256点FFT,画出频谱图;
以1KHz的采样率采128个点,后面添加128个0,做256点FFT,画
频谱图;
以2KHz的采样率采128个点,做128点FFT,画出频谱图;
以2KHz的采样率采256个点,做256点FFT,画出频谱图;
以2KHz的采样率采512个点,做512点FFT,画出频谱图;
要求:
频谱图横轴坐标以Hz为单位,比较这5种情况下信号的频谱有何异同,并说说你从这些现象中明白了什么道理。
(I)解:
若要在x(t)的频谱上分辨出这两个频率,且保证频谱不混叠,
采样频率fs>=980Hz;
信号时长tp>=1/F=1/10Hz=0.1s;
(II)
以1KHz的采样率采128个点,做128点FFT,画出频谱图;
用Matlab编写的程序为
clf;clear;clc;
fs=1000;%采样频率和数据点数
N=128;
n=0:
N-1;
t=n/fs;%时间序列
x=sin(2*pi*480*t)+2*sin(2*pi*490*t);%信号
y=fft(x,N);%对信号进行快速Fourier变换
mag=abs(y);%求得Fourier变换后的振幅
f=n*fs/N;%频率序列
subplot(1,1,1)
plot(f,mag);%绘出随频率变化的振幅
xlabel('频率/Hz');
ylabel('振幅');
title('N=128');
gridon;
绘出的图像如图:
以1KHz的采样率采256个点,做256点FFT,画出频谱图
用Matlab编写的程序为
clf;clear;clc;
fs=1000;%采样频率和数据点数
N=256;
n=0:
N-1;
t=n/fs;%时间序列
x=sin(2*pi*480*t)+2*sin(2*pi*490*t);%信号
y=fft(x,N);%对信号进行快速Fourier变换
mag=abs(y);%求得Fourier变换后的振幅
f=n*fs/N;%频率序列
subplot(1,1,1)
plot(f,mag);%绘出随频率变化的振幅
xlabel('频率/Hz');
ylabel('振幅');
title('N=256');
gridon;
绘出的图像如图:
以1KHz的采样率采128个点,后面添加128个0,做256点FFT,画
频谱图;
用Matlab编写的程序为
clf;clear;clc;
fs=1000;%采样频率和数据点数
N=128;
n=0:
N-1;
t=n/fs;%时间序列
x=sin(2*pi*480*t)+2*sin(2*pi*490*t);%信号
x1=zeros(1,256);
x1(1:
N)=x;
y=fft(x1,256);%对信号进行快速Fourier变换
mag=abs(y);%求得Fourier变换后的振幅
n1=0:
255;
f=n1*fs/256;%频率序列
subplot(1,1,1)
plot(f,mag);%绘出随频率变化的振幅
xlabel('频率/Hz');
ylabel('振幅');
title('N=128N1=256');
gridon;
绘出的图像为:
以2KHz的采样率采128个点,做128点FFT,画出频谱图;
用Matlab编写的程序为:
clf;clear;clc;
fs=2000;%采样频率和数据点数
N=128;
n=0:
N-1;
t=n/fs;%时间序列
x=sin(2*pi*480*t)+2*sin(2*pi*490*t);%信号
y=fft(x,N);%对信号进行快速Fourier变换
mag=abs(y);%求得Fourier变换后的振幅
f=n*fs/N;%频率序列
subplot(1,1,1)
plot(f,mag);%绘出随频率变化的振幅
xlabel('频率/Hz');
ylabel('振幅');
title('N=128');
gridon;
绘出的图像为:
以2KHz的采样率采256个点,做256点FFT,画出频谱图;
用Matlab编写的程序为:
clf;clear;clc;
fs=2000;%采样频率和数据点数
N=256;
n=0:
N-1;
t=n/fs;%时间序列
x=sin(2*pi*480*t)+2*sin(2*pi*490*t);%信号
y=fft(x,N);%对信号进行快速Fourier变换
mag=abs(y);%求得Fourier变换后的振幅
f=n*fs/N;%频率序列
subplot(1,1,1)
plot(f,mag);%绘出随频率变化的振幅
xlabel('频率/Hz');
ylabel('振幅');
title('N=256');
gridon;
绘出的图像为:
以2KHz的采样率采512个点,做512点FFT,画出频谱图;
用Matlab编写的程序为:
clf;clear;clc;
fs=2000;%采样频率和数据点数
N=512;
n=0:
N-1;
t=n/fs;%时间序列
x=sin(2*pi*480*t)+2*sin(2*pi*490*t);%信号
y=fft(x,N);%对信号进行快速Fourier变换
mag=abs(y);%求得Fourier变换后的振幅
f=n*fs/N;%频率序列
subplot(1,1,1)
plot(f,mag);%绘出随频率变化的振幅
xlabel('频率/Hz');
ylabel('振幅');
title('N=512');
gridon;
绘出的图像为:
从对这6幅图的比较中可以看出:
在采样频率fs一定的情况下,采样有效点数N越大,信号在频域上所占的脉宽越窄,频率混叠程度越小,频谱分辨率越大。
若对采样点后面补零,可以使采样间隔更小,频谱形状更平滑,但不能提高分辨率。
作业2:
x(t)=sin(2*pi*100*t)+0.5*cos(2*pi*1500*t)+0.5*sin(2*pi*2900*t),
(
)分别设计巴特沃思模拟低通、带通、高通滤波器,将信号中的三个分量分离出来;
(
)分别设计切比雪夫I、II型模拟低通、带通、高通滤波器,将信号中的三个分量分离出来;
画出信号分离前后的时域波形图和频谱图,画出滤波器的幅频、相频特性曲线(幅频曲线横轴用普通坐标,纵轴用对数坐标);[自行确定滤波器的带宽和波纹,不允许用直接设计的方法,用低通滤波器转换函数]
一,巴特沃兹模拟低通滤波器
clc;clear;clf;
Wp=800*2*pi;Ws=1200*2*pi;%通带阻带截止频率
Rp=3;Rs=20;%通带波纹和阻带衰减
[N,Wc]=buttord(Wp,Ws,Rp,Rs,'s');%求得滤波器的最小阶数和截止频率
[z,p,k]=buttap(N);%设计Butterworth滤波器
[b,a]=zp2tf(z,p,k);%将零点极点增益形式转换为传递函数形式
[bt,at]=lp2lp(b,a,Wc);
w=linspace(1,5000,1000)*2*pi;%设置绘制频率响应的频率点
H=freqs(bt,at,w);%计算给定频率点的复数频率响应
magH=abs(H);
%--------------------------------------------------------------------------
figure
(1)
subplot(2,1,1),plot(w/2/pi,20*log10(magH));%绘制幅频响应
xlabel('频率/Hz');ylabel('振幅/dB');gridon;title('幅频图');
subplot(2,1,2),plot(w/2/pi,unwrap(angle(H)));%绘制相频响应
xlabel('频率/Hz');
ylabel('相位/^o');gridon;title('相频图')
%--------------------------------------------------------------------------
figure
(2)
dt=1/10000;%模拟信号采样间隔
f1=100;f2=1500;f3=2900;%输入信号的三个频率成分
t=0:
dt:
0.04;%给定模拟时间段
x=sin(2*pi*f1*t)+0.5*cos(2*pi*f2*t)+0.5*sin(2*pi*f3*t);%输入信号
h=[tf(bt,at)];%滤波器在MATLAB系统中的表示
[y,t1]=lsim(h,x,t);%模拟输出
subplot(2,1,1),plot(t,x),title('输入信号')%绘出输入信号
subplot(2,1,2),plot(t1,y)%绘制输出信号
title('输出信号'),xlabel('时间/s')
%--------------------------------------------------------------------------
figure(3)
Fy=abs(fft(y));
w=(-(length(Fy)-1)/2:
(length(Fy)-1)/2)/(length(Fy)*dt);
plot(w((length(Fy)-1)/2+1:
(length(Fy)-1)),Fy(1:
(length(Fy)-1)/2)*2/length(Fy))
title('输出信号频谱')
xlabel('频率/Hz')
二、巴特沃兹模拟带通滤波器
clc;clear;clf;
Wp=[1200,1800]*2*pi;Ws=[1000,2000]*2*pi;%通带阻带截止频率
Rp=3;Rs=20;%通带波纹和阻带衰减
[N,Wc]=buttord(Wp,Ws,Rp,Rs,'s');%求得滤波器的最小阶数和截止频率
[z,p,k]=buttap(N);%设计Butterworth滤波器
[b,a]=zp2tf(z,p,k);%将零点极点增益形式转换为传递函数形式
Wo=1500*2*pi;%中心频率
Bw=600*2*pi;%频带宽度
[bt,at]=lp2bp(b,a,Wo,Bw);%频率转换
w=linspace(1,5000,1000)*2*pi;%设置绘制频率响应的频率点
H=freqs(bt,at,w);%计算给定频率点的复数频率响应
magH=abs(H);
%--------------------------------------------------------------------------
figure
(1)
subplot(2,1,1),plot(w/2/pi,20*log10(magH));%绘制幅频响应
xlabel('频率/Hz');ylabel('振幅/dB');gridon;title('幅频图');
subplot(2,1,2),plot(w/2/pi,unwrap(angle(H)));%绘制相频响应
xlabel('频率/Hz');
ylabel('相位/^o');gridon;title('相频图')
%--------------------------------------------------------------------------
figure
(2)
dt=1/10000;%模拟信号采样间隔
f1=100;f2=1500;f3=2900;%输入信号的三个频率成分
t=0:
dt:
0.04;%给定模拟时间段
x=sin(2*pi*f1*t)+0.5*cos(2*pi*f2*t)+0.5*sin(2*pi*f3*t);%输入信号
h=[tf(bt,at)];%滤波器在MATLAB系统中的表示
[y,t1]=lsim(h,x,t);%模拟输出
subplot(2,1,1),plot(t,x),title('输入信号')%绘出输入信号
subplot(2,1,2),plot(t1,y)%绘制输出信号
title('输出信号'),xlabel('时间/s')
%--------------------------------------------------------------------------
figure(3)
Fy=abs(fft(y));
w=(-(length(Fy)-1)/2:
(length(Fy)-1)/2)/(length(Fy)*dt);
plot(w((length(Fy)-1)/2+1:
(length(Fy)-1)),Fy(1:
(length(Fy)-1)/2)*2/length(Fy))
title('输出信号频谱')
xlabel('频率/Hz')
三、巴特沃兹模拟高通滤波器
clc;clear;clf;
Wp=2600*2*pi;Ws=2000*2*pi;%通带阻带截止频率
Rp=3;Rs=25;%通带波纹和阻带衰减
[N,Wc]=buttord(Wp,Ws,Rp,Rs,'s');%求得滤波器的最小阶数和截止频率
[z,p,k]=buttap(N);%设计Butterworth滤波器
[b,a]=zp2tf(z,p,k);%将零点极点增益形式转换为传递函数形式
Wo=sqrt(Wp*Ws);%中心频率
[bt,at]=lp2hp(b,a,Wo);%频率转换
w=linspace(1,5000,1000)*2*pi;%设置绘制频率响应的频率点
H=freqs(bt,at,w);%计算给定频率点的复数频率响应
magH=abs(H);
%--------------------------------------------------------------------------
figure
(1)
subplot(2,1,1),plot(w/2/pi,20*log10(magH));%绘制幅频响应
xlabel('频率/Hz');ylabel('振幅/dB');gridon;title('幅频图');
subplot(2,1,2),plot(w/2/pi,unwrap(angle(H)));%绘制相频响应
xlabel('频率/Hz');
ylabel('相位/^o');gridon;title('相频图')
%--------------------------------------------------------------------------
figure
(2)
dt=1/10000;%模拟信号采样间隔
f1=100;f2=1500;f3=2900;%输入信号的三个频率成分
t=0:
dt:
0.04;%给定模拟时间段
x=sin(2*pi*f1*t)+0.5*cos(2*pi*f2*t)+0.5*sin(2*pi*f3*t);%输入信号
h=[tf(bt,at)];%滤波器在MATLAB系统中的表示
[y,t1]=lsim(h,x,t);%模拟输出
subplot(2,1,1),plot(t,x),title('输入信号')%绘出输入信号
subplot(2,1,2),plot(t1,y)%绘制输出信号
title('输出信号'),xlabel('时间/s')
%--------------------------------------------------------------------------
figure(3)
Fy=abs(fft(y));
w=(-(length(Fy)-1)/2:
(length(Fy)-1)/2)/(length(Fy)*dt);
plot(w((length(Fy)-1)/2+1:
(length(Fy)-1)),Fy(1:
(length(Fy)-1)/2)*2/length(Fy))
title('输出信号频谱')
xlabel('频率/Hz')
四、切比雪夫I型模拟低通滤波器
clc;clear;clf;
Wp=800*2*pi;Ws=1200*2*pi;%通带阻带截止频率
Rp=3;Rs=20;%通带波纹和阻带衰减
[N,Wc]=cheb1ord(Wp,Ws,Rp,Rs,'s')%计算ChebyshevI滤波器的最小阶数和截止频率
[z,p,k]=cheb1ap(N,Rp);%设计ChebyshevI型滤波器
[b,a]=zp2tf(z,p,k);%将零点极点增益形式转换为传递函数形式
[bt,at]=lp2lp(b,a,Wc);
w=linspace(1,5000,1000)*2*pi;%设置绘制频率响应的频率点
H=freqs(bt,at,w);%计算给定频率点的复数频率响应
magH=abs(H);
%--------------------------------------------------------------------------
figure
(1)
subplot(2,1,1),plot(w/2/pi,20*log10(magH));%绘制幅频响应
xlabel('频率/Hz');ylabel('振幅/dB');gridon;title('幅频图');
subplot(2,1,2),plot(w/2/pi,unwrap(angle(H)));%绘制相频响应
xlabel('频率/Hz');
ylabel('相位/^o');gridon;title('相频图')
%--------------------------------------------------------------------------
figure
(2)
dt=1/10000;%模拟信号采样间隔
f1=100;f2=1500;f3=2900;%输入信号的三个频率成分
t=0:
dt:
0.04;%给定模拟时间段
x=sin(2*pi*f1*t)+0.5*cos(2*pi*f2*t)+0.5*sin(2*pi*f3*t);%输入信号
h=[tf(bt,at)];%滤波器在MATLAB系统中的表示
[y,t1]=lsim(h,x,t);%模拟输出
subplot(2,1,1),plot(t,x),title('输入信号')%绘出输入信号
subplot(2,1,2),plot(t1,y)%绘制输出信号
title('输出信号'),xlabel('时间/s')
%--------------------------------------------------------------------------
figure(3)
Fy=abs(fft(y));
w=(-(length(Fy)-1)/2:
(length(Fy)-1)/2)/(length(Fy)*dt);
plot(w((length(Fy)-1)/2+1:
(length(Fy)-1)),Fy(1:
(length(Fy)-1)/2)*2/length(Fy))
title('输出信号频谱')
xlabel('频率/Hz')
五、切比雪夫I型模拟带通滤波器
clc;clear;clf;
Wp=[1200,1800]*2*pi;Ws=[1000,2000]*2*pi;%通带阻带截止频率
Rp=3;Rs=20;%通带波纹和阻带衰减
[N,Wc]=cheb1ord(Wp,Ws,Rp,Rs,'s')%计算ChebyshevI滤波器的最小阶数和截止频率
[z,p,k]=cheb1ap(N,Rp);%设计ChebyshevI型滤波器
[b,a]=zp2tf(z,p,k);%将零点极点增益形式转换为传递函数形式
Wo=1500*2*pi;%中心频率
Bw=600*2*pi;%频带宽度
[bt,at]=lp2bp(b,a,Wo,Bw);%频率转换
w=linspace(1,5000,1000)*2*pi;%设置绘制频率响应的频率点
H=freqs(bt,at,w);%计算给定频率点的复数频率响应
magH=abs(H);
%--------------------------------------------------------------------------
figure
(1)
subplot(2,1,1),plot(w/2/pi,20*log10(magH));%绘制幅频响应
xlabel('频率/Hz');ylabel('振幅/dB');gridon;title('幅频图');
subplot(2,1,2),plot(w/2/pi,unwrap(angle(H)));%绘制相频响应
xlabel('频率/Hz');
ylabel('相位/^o');gridon;title('相频图')
%--------------------------------------------------------------------------
figure
(2)
dt=1/10000;%模拟信号采样间隔
f1=100;f2=1500;f3=2900;%输入信号的三个频率成分
t=0:
dt:
0.04;%给定模拟时间段
x=sin(2*pi*f1*t)+0.5*cos(2*pi*f2*t)+0.5*sin(2*pi*f3*t);%输入信号
h=[tf(bt,at)];%滤波器在MATLAB系统中的表示
[y,t1]=lsim(h,x,t);%模拟输出
subplot(2,1,1),plot(t,x),title('输入信号')%绘出输入信号
subplot(2,1,2),plot(t1,y)%绘制输出信号
title('输出信号'),xlabel('时间/s')
%--------------------------------------------------------------------------
figure(3)
Fy=abs(fft(y));
w=(-(length(Fy)-1)/2:
(length(Fy)-1)/2)/(length(Fy)*dt);
plot(w((length(Fy)-1)/2+1:
(length(Fy)-1)),Fy(1:
(length(Fy)-1)/2)*2/length(Fy))
title('输出信号频谱')
xlabel('频率/Hz')
六、切比雪夫I型模拟高通滤波器
clc;clear;clf;
Wp=26
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字信号 作业