【现代信号处理第二次作业】

简介: 【现代信号处理第二次作业】

6.png3.png1. 三角函数基本公式


1.png

1.1 函数关系


2.png

1.2 诱导公式

3.png

4.png


5.png

6.png


1.5-1


7.png

1.5-2

8.png9.png

1.6-1

知识点参考

1.png

2.png

3.png



1.6-2

(1)代码

clc;clear;
N=6;
xn=[ones(1,N/3),zeros(1,2*N/3)];
n=0:N-1;
Xk=dfs(xn,N)


打印如下

4.png

5.png

6.png



根据

7.png

化简如下:


8.png

9.png


(3)原始谱、幅度谱和相位谱分别如下:

10.png

clc;clear;
N=6;
xn=[ones(1,N/3),zeros(1,2*N/3)];
n=0:N-1;
Xk=dfs(xn,N);
subplot(1,3,1);
stem(n,xn); ylabel ('x1'); xlabel ('n'); %显示序列的图形
subplot(1,3,2);
stem(n,abs(Xk)); ylabel ('|X(k)|'); xlabel ('k(θ=2kpi/N)'); %显示序列幅度的图形
subplot(1,3,3);
stem(n,angle(Xk)); ylabel ('ang|X(k)|'); xlabel ('k(θ=2kpi/N)'); %显示序列相位的图形


(4)n代入的


11.png

原始序列与分解序列是同一序列。



1.6-3-1

图像分别如下:

1.png

由图1/2可知,无限长序列在截取后,其频谱会失真,此失真叫截取失真。截取长度越小失真越严重。

由图3/4可知,无限长序列截短后,其频谱会产生失真,此失真叫截取失真。

代码如下:

clc;clear;
n=0:0.01:4;
x1n=cos(0.5*pi*n);
N = size(n,2);
Xk = dfs(x1n, N);
% stem(n,abs(Xk)); %显示序列的幅度谱
n1 = 0:8;
n1 = n1*4/8;%归整到一个周期内
x8n=cos(0.5*pi*n1);
x8n1=zeros(1,2048-size(x8n,2));
x8n=[x8n,x8n1];
N1 = size(x8n,2);
X8k = dfs(x8n,N1);
k8 = 0:N1-1;
% stem(k8,abs(X8k)); %显示序列的幅度谱
n2 = 0:32;
n2 = n2*4/32;
x32n=cos(0.5*pi*n2);
x32n1=zeros(1,2048-size(x32n,2));
x32n=[x32n,x32n1];
N2 = size(x32n,2);
X32k = dfs(x32n,N2);
k32 = 0:N2-1;
%plot(2*k32*pi/2048,abs(X32k)); %显示序列的幅度谱
n2 = 0:32;
n2 = n2*4/32;%归整到一个周期内
x32n=cos(0.5*pi*n2);
N2 = size(x32n,2);
X32kt = dfs(x32n,N2);
k32t = 0:N2-1;
% stem(k8,abs(X8k)); %显示序列的幅度谱
figure(1);
subplot(1,4,1);%1*4图形中的第一个
plot(n,abs(Xk)); ylabel ('Xk'); xlabel ('n'); title('原序列的DTFT幅度谱');
subplot(1,4,2);
plot(k8*2*pi/2048,abs(X8k)); ylabel ('X8k'); xlabel ('k8'); title('长度为8的DTFT谱');
subplot(1,4,3);
plot(k32*2*pi/2048,abs(X32k)); ylabel ('X32k'); xlabel ('k32'); title('长度为32的DTFT谱');
subplot(1,4,4);
stem(k32t*2*pi/32,abs(X32kt)); ylabel ('X32k'); xlabel ('k32'); title('长度为32的DFT谱');

2.png


1.6-3-2

(1)

3.png

代码如下:

clc;clear;
n=0:0.01:2*pi;
x1n=(-0.2).^n;
N = size(n,2);
Xk = dfs(x1n, N);
figure(1);
plot(n,abs(Xk));ylabel ('|Xk|'); xlabel ('n'); title('原序列的DTFT幅度谱'); %显示序列的幅度谱
hold on;


(2)

4.png

代码如下:

n1 = 0:32;
n1 = n1*2*pi/32;
x32n=(-0.2).^n1;
N1 = size(x32n,2);
X32k = dfs(x32n,N1);
k32 = 0:N1-1;
%stem(k32,abs(X32k)); %显示序列的幅度谱
n2 = 0:64;
n2 = n2*2*pi/64;
x64n=(-0.2).^n2;
N2 = size(x64n,2);
X64k = dfs(x64n,N2);
k64 = 0:N2-1;
%stem(k64,abs(X64k)); %显示序列的幅度谱
n3 = 0:128;
n3 = n3*2*pi/128;
x128n=(-0.2).^n3;
N3 = size(x128n,2);
X128k = dfs(x128n,N3);
k128 = 0:N3-1;
% stem(k128,abs(X128k)); %显示序列的幅度谱
figure(2);
subplot(1,3,1);%2*2图形中的第一个
stem(k32,abs(X32k)); ylabel ('|X32k|'); xlabel ('k32'); title('32序列的DFT幅度谱');
subplot(1,3,2);
stem(k64,abs(X64k)); ylabel ('|X64k|'); xlabel ('k64'); title('64序列的DFT幅度谱');
subplot(1,3,3);
stem(k128,abs(X128k)); ylabel ('|X128k|'); xlabel ('k128'); title('128序列的DFT幅度谱');
hold on;


(3)

5.png


代码如下:

n4 = 0:1024;
n4 = n4*2*pi/1024;
x1024n=(-0.2).^n4;
N4 = size(x1024n,2);
tic%开始计时
X1024k = dfs(x1024n,N4);
toc,disp(['1024DFT运行时间: ',num2str(toc)]);%结束计时,打印消耗时间
tic%开始计时
X1024kf = fft(x1024n,N4);
toc,disp(['1024FFT运行时间: ',num2str(toc)]);%结束计时,打印消耗时间
k1024 = 0:N4-1;
figure(3);
subplot(1,2,1);%2*1图形中的第一个
stem(k1024,abs(X1024k)); ylabel ('|X1024k|'); xlabel ('k1024'); title('1024序列的DFT幅度谱');
subplot(1,2,2);
stem(k1024,abs(X1024kf)); ylabel ('|X1024kf|'); xlabel ('k1024'); title('1024序列的DFT幅度谱');


打印计算时间:

6.png


快速傅里叶变换计算时间更短,值得使用!


7.png

1.7-3-1

(1)

1.png

其极点为 z=\frac{1}{8},则有

6e2eb5236a2d4e7c8adea1467508a050.png

幅度谱:

2.png

代码:

clc;clear;
n=-pi:0.01:pi;
y=(exp(j*n)-7/8)./(exp(j*n)-1/8);
figure(1);
plot(n,abs(y));ylabel ('|H(e^{j\theta}|'); xlabel ('\theta'); title('幅度谱');
grid on;


(2)该滤波器的角频率为 0附近的增益为零,而在角频率为π的增益最大,

该滤波器滤去低频序列,保留高频序列。

(3)


3.png

4.png

代码:

syms n
f=(exp(1i*n)-7/8)./(exp(1i*n)-1/8);
disp(vpa(abs(subs(f,'n',0))));disp(vpa(angle(subs(f,'n',0)*180/pi)));
disp(vpa(abs(subs(f,'n',pi/2))));disp(vpa(angle(subs(f,'n',pi/2))*180/pi));
disp(vpa(abs(subs(f,'n',pi))));disp(vpa(angle(subs(f,'n',pi))*180/pi));

5.png


1.7-3-2


6.png

7.png

系统为 FIR滤波器,该滤波器为低通滤波器(LPF)

图像:

8.png

代码:

clc; clear;
n = -pi:0.01:pi;
y1 = 1-3*exp(-1i*n)+3*exp(-2*1i*n)-exp(-3*1i*n);
y2 = 1+3*exp(-1i*n)+3*exp(-2*1i*n)+exp(-3*1i*n);
figure(1)
subplot(1,2,1);
plot(n,abs(y1));ylabel ('|H_1(e^{j\theta})|'); xlabel ('\theta'); title('幅度谱');grid on;
subplot(1,2,2);
plot(n,abs(y2));ylabel ('|H_2(e^{j\theta})|'); xlabel ('\theta'); title('幅度谱');grid on;



9.png

10.png

1.7-3-3

11.png


12.png


系统为高通滤波器。

图像

13.png


代码

clc; clear;
n = -pi:0.001:pi;
y1 = exp(1i*n)./(exp(1i*n)-0.3);
y2 = exp(1i*n)./(exp(1i*n)+0.3);
figure(1)
subplot(1,2,1);
plot(n,abs(y1));ylabel ('|H_1(e^{j\theta})|'); xlabel ('\theta'); title('幅度谱');grid on;
subplot(1,2,2);
plot(n,abs(y2));ylabel ('|H_2(e^{j\theta})|'); xlabel ('\theta'); title('幅度谱');grid on;

14.png

目录
相关文章
|
7月前
|
Serverless
函数计算在执行请求的过程中遇到了意外的错误
函数计算在执行请求的过程中遇到了意外的错误
70 1
|
1月前
|
Serverless
基于Logistic函数的负荷需求响应(matlab代码)
基于Logistic函数的负荷需求响应(matlab代码)
|
1月前
|
算法 定位技术
GPS信号的数字接收处理matlab仿真,包括频率点搜索,捕获跟踪,相关峰检测等步骤
GPS信号的数字接收处理matlab仿真,包括频率点搜索,捕获跟踪,相关峰检测等步骤
|
10月前
观测信号(包括异常值)的状态估计方法(Matlab代码实现)
观测信号(包括异常值)的状态估计方法(Matlab代码实现)
|
1月前
在程序运行过程中,线程的状态是什么?进来看看就通透了
在程序运行过程中,线程的状态是什么?进来看看就通透了
37 0
ErrGroup-有错误返回的Goroutine控制
ErrGroup-有错误返回的Goroutine控制
42 0
|
机器学习/深度学习 传感器 算法
基于matlab模拟雷达信号检测中的恒虚警处理方法(慢门限和快门限)
基于matlab模拟雷达信号检测中的恒虚警处理方法(慢门限和快门限)
|
机器学习/深度学习 传感器 算法
【无人机任务分配】基于合同网协议(CNP算法)实现多无人机具有时间窗口和优先级约束任务分配及跟踪问题附matlab代码
【无人机任务分配】基于合同网协议(CNP算法)实现多无人机具有时间窗口和优先级约束任务分配及跟踪问题附matlab代码
|
物联网
【现代信号处理第一次作业】
【现代信号处理第一次作业】
80 0
|
Linux 异构计算 Windows
如何expanded time来观察信号到来的先后顺序?(仿真工具使用技巧)【Modesim/Questasim】
如何expanded time来观察信号到来的先后顺序?(仿真工具使用技巧)【Modesim/Questasim】
如何expanded time来观察信号到来的先后顺序?(仿真工具使用技巧)【Modesim/Questasim】