数字信号处理上机实验一

数字信号处理上机实验一

  1. 给定信号 x ( n ) = { 2 n + 4 , − 4 ≤ n ≤ − 1 2 n , 0 ≤ n ≤ 4 0 ,  其他  x(n)=\left\{\begin{array}{l}2 n+4,-4 \leq n \leq-1 \\ 2 n, 0 \leq n \leq 4 \\ 0, \text { 其他 }\end{array}\right. x(n)= 2n+4,4n12n,0n40, 其他 ,绘制 x ( n ) , x 1 ( n ) = 2 x ( n − 2 ) x(n), \quad x_1(n)=2 x(n-2) x(n),x1(n)=2x(n2) x 2 ( n ) = 3 x ( 3 − n ) x_2(n)=3 x(3-n) x2(n)=3x(3n)的波形

代码:

%%%%%%%第一题%%%%%%%
n=-4:1:4;
y=f(n);
subplot(3,1,1);
stem(n,y);
xlabel('n');
ylabel('y');
y1=2*y;
n1=n+2;
subplot(3,1,2);
stem(n1,y1);
xlabel('n');
ylabel('y1');
y2=3*flip(y);         %先翻转后倍乘
n2=flip(flip(n)+3);         %序列先翻转后移位
subplot(3,1,3);
stem(n2,y2);
xlabel('n');
ylabel('y2');


function y=f(x)
    k=length(x)for n=1:k
        if (x(n)>=-4)&&(x(n)<=-1)
            y(n)=2*x(n)+4;
        elseif (x(n)>=0)&&(x(n)<=4)
            y(n)=2*x(n);
        else
            y(n)=0;
        end
    end
end

  1. 已知某线性时不变系统,其单位冲激响应为 h ( n ) = u ( n ) − u ( n − 4 ) h(n)=u(n)-u(n-4) h(n)=u(n)u(n4),求其在输入序列为 x ( n ) = sin ⁡ ( 0.3 π n ) n R 10 ( n ) x(n)=\frac{\sin (0.3 \pi n)}{n} \mathrm{R}_{10}(n) x(n)=nsin(0.3πn)R10(n)时的零状态响应

代码:

%%%%%%%第二题%%%%%%%%
n=0:1:12;
n1=0:1:9;
h=ones(1,4);
x=sin(0.3*pi*n1)./n1.*ones(1,10);
y=conv(x,h);
stem(n,y);
title('零状态响应');
xlabel('n');
ylabel('y(n)');
grid;

  1. 设模拟信号为 x a ( t ) = e − 1000 ∣ t ∣ x_a(t)=e^{-1000 |t|} xa(t)=e1000∣t
    (1)画出 x a ( t ) x_a(t) xa(t)的时域波形及其幅频特性曲线;
    (2)若用两种不同采样频率 f s 1 = 5000   H z f_{s 1}=5000 \mathrm{~Hz} fs1=5000 Hz f s 2 = 1000   H z f_{s 2}=1000 \mathrm{~Hz} fs2=1000 Hz 分别对 x a ( t ) x_a(t) xa(t)采样,分别画出采样得到的序列的频谱
    代码:
%%%%%%%%%第三题%%%%%%%%%

t=-0.1:0.01:0.1;                        % 定义时间序列
xa=exp((-1000*abs(t)));                 % 原信号
f=0:5000;                                % 定义频率序列
Xw=2000./(1000^2+(2*pi*f).^2);                  % 傅里叶变换
figure('Name','原信号和频谱图','NumberTitle','off');
subplot(2,1,1)
plot(t,xa);                             %原信号
title('原信号');                   
xlabel('time(s)');
ylabel('xa');
subplot(2,1,2)                          
plot(f,Xw);                             % 幅频特性曲线
title('幅频特性');
xlabel('Frequency (Hz)');
ylabel('|X(w)|');

%%%%%%%    下面采样分析     %%%%%%%%

%%%%%%%%%%%%     采样率为5000     %%%%%%%%%%%%
Fs=5000;                                        % 采样频率
N=1024^2;                                       % 采样点数
t=1/Fs;                                         % 采样间隔
T=(0:N-1)*t;                                    % 定义采样的每个时间点                             
xn=exp(-1000*T);                                % 对信号进行采样
Xk=fft(xn,N);                                   % fft变换
X_m = abs(Xk)*2/N;                              % 幅值量化变换
X_phi = angle(Xk);                              % 相位
Nn = floor((N-1)/2);                            % 变换后有用的点数-1
f = (0:Nn)*Fs/N ;                               % 横坐标 频率HZ
X_m = X_m(1:Nn+1);                              % 幅值(仅取有用点Nn个点)
X_phi = X_phi(1:Nn+1);                          % 相位(仅取有用点Nn个点)
X_phi = X_phi*180/pi;                           % 化成°单位                       
X_m(1) = X_m(1)/2;                              % 直流分量处理
figure('Name','5000Hz采样率的FFT频谱分析','NumberTitle','off');
subplot(2,1,1)
plot(f,X_m)
title('DFT的频率-幅值图');
xlabel('频率/HZ');
ylabel('幅值');
grid on;
subplot(2,1,2)
plot(f,X_phi)
title('DFT的频率-相位图');
xlabel('频率/HZ');
ylabel('相位/°');
grid on;


%%%%%%%%%%%%     采样率为1000     %%%%%%%%%%%%

Fs=1000;  
N=1024^2;                                         % 采样点数
t=1/Fs;                                         % 采样间隔
T=(0:N-1)*t;                                    % 定义采样的每个时间点                             
xn=exp(-1000*T);                                % 对信号进行采样
Xk=fft(xn,N);                                   % fft变换
X_m = abs(Xk)*2/N;                              % 幅值量化变换
X_phi = angle(Xk);                              % 相位
Nn = floor((N-1)/2);                            % 变换后有用的点数-1
f = (0:Nn)*Fs/N ;                               % 横坐标 频率HZ
X_m = X_m(1:Nn+1);                              % 幅值(仅取有用点Nn个点)
X_phi = X_phi(1:Nn+1);                          % 相位(仅取有用点Nn个点)
X_phi = X_phi*180/pi;                           % 化成°单位                       
X_m(1) = X_m(1)/2;                              % 直流分量处理
figure('Name','1000Hz采样率的FFT频谱分析','NumberTitle','off');
subplot(2,1,1)
plot(f,X_m)
title('DFT的频率-幅值图');
xlabel('频率/HZ');
ylabel('幅值');
grid on;
subplot(2,1,2)
plot(f,X_phi)
title('DFT的频率-相位图');
xlabel('频率/HZ');
ylabel('相位/°');
grid on;

  1. 已知一个线性时不变因果系统,用以下差分方程描述:
    y ( n ) = y ( n − 1 ) + y ( n − 2 ) + x ( n − 1 ) y(n)=y(n-1)+y(n-2)+x(n-1) y(n)=y(n1)+y(n2)+x(n1)
    (1) 求出该系统的系统函数,并绘制出零极点分布图,指出其收敛域。
    (2) 画出系统的冲激响应;
    (3) 画出系函数的幅度和相位响应曲线,并分析系统的频率选择性。
    代码:
%%%%%%%%     第四题     %%%%%%%%%

b=[1,0,0];                          % 分子系数
a=[1,-1,-1];                        % 分母系数
subplot(2,1,1);
[z,p,k]=zplane(B,A);                       % 绘制零极点分布图
title('零极点分布图');
xlabel('Real');        
ylabel('Image');
N=1024;                             % 采样1024点
ts=1;                               % 假设采样间隔为1s
t=(0:N-1)*ts;                       % 采样时间序列
sys=tf(B,A,ts);                     % 系统函数
y=impulse(sys,t);                   % 计算冲激响应
subplot(2,1,2);
plot(t,y);                          % 绘制冲激函数图形
title('冲激响应');
xlabel('time(sec)');
ylabel('h(t)');
figure('Name','频率响应','NumberTitle','off');
freqz(b,a,'whole',2001);            % 绘制幅度响应和相位响应

  1. 某数字滤波器的系统频率响应为:
    H ( e j ω ) = [ 1 + cos ⁡ ( ω ) + 3 cos ⁡ ( 2 ω ) ] cos ⁡ ( ω 2 ) e − j j ω 2 H\left(e^{j \omega}\right)=[1+\cos (\omega)+3 \cos (2 \omega)] \cos \left(\frac{\omega}{2}\right) e^{-j \frac{j \omega}{2}} H(e)=[1+cos(ω)+3cos(2ω)]cos(2ω)ej2
    (1) 求出该系统的系统函数。
    (2) 画出该滤波器的幅度响应和相位响应曲线。
    (3) 产生信号 的200个样本,并通过该滤波器。求滤波器的稳态响应并与 作比较,分析两个正弦的幅度和相位是如何受到该滤波器的影响的。
    代码:
 %%%%%%%%%第五题%%%%%%%%


% Hz=(3*z.^5+4*z.^4+3*z.^3+3*z.^2+4*z+3)./(4*z.^5);        %系统函数

b=[3,4,3,3,4,3];                    % 分子系数
a=[4,0,0,0,0,0];                    % 分母系数
figure('Name','频率响应','NumberTitle','off');
freqz(b,a,'whole',2001);            % 绘制幅度响应和相位响应
ts = 0.05;                          % 假设采样时间为0.05s
N=200;                              % 采样点数
n=(0:N-1)*ts;                       % 采样时间序列
xn=sin(pi/2*n)+5*cos(pi*n);         % 采样序列
sys = tf(b,a,ts);                   % 创建离散时间系统
figure('Name','稳态响应','NumberTitle','off');
lsim(sys,xn,n);                     % 响应
figure('Name','原序列','NumberTitle','off');
plot(n,xn);
title('原序列');
xlabel('t');
ylabel('y');
figure('Name','理论分析结果','NumberTitle','off');
yss=sqrt(2)*sin(pi/2*n-pi/4);       %稳态响应
plot(n,yss);                        %绘制滤波后的序列
title('滤波后序列');
xlabel('t');
ylabel('y');
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值