MATLAB/Simulink 通信原理及仿真学习(三)

news2024/11/27 10:20:23

文章目录

  • MATLAB/Simulink 通信原理及仿真学习(三)
      • 3. 通信信号与系统分析
        • 3.1 离散信号和系统
          • 3.1.1 离散信号
          • 3.1.2 离散时间信号
          • 3.1.3 信号的能量和功率
        • 3.2 傅里叶(Fourier)分析
          • 3.2.1 连续时间信号的Fourier变换
          • 3.2.2 离散时间信号的Fourier变换
          • 3.2.3 离散Fourier变换

MATLAB/Simulink 通信原理及仿真学习(三)

3. 通信信号与系统分析

  • 数字通信的研究包括数字形式的信息从产生该信息的信源到一个或多个目的地的传输问题。

3.1 离散信号和系统

  • 信号是信息的物理表现形式或说是传递信息的函数,系统定义为处理(或变换)信号的物理设备。
3.1.1 离散信号

一个信号 x ( t ) x(t) x(t)可以是连续时间信号(模拟信号),也可以是离散时间信号(数字信号)。若 x ( t ) x(t) x(t)是离散信号,则 t t t仅在时间轴的离散点上取值,这时,应将 x ( t ) x(t) x(t)该记为 x ( n T s ) x(nT_s) x(nTs) T s T_s Ts表示相邻两个点之间的时间间隔,又称抽样周期, n n n取整数,即
x ( n T s ) , n = − N 1 , ⋯   , 0 , 1 , ⋯   , N 2 \begin{equation} x(nT_s),n=-N_1,\cdots,0,1,\cdots,N_2 \tag{3-1} \end{equation} x(nTs),n=N1,,0,1,,N2(3-1)

式中, N 1 , N 2 N_1,N_2 N1,N2 n n n的取值范围。一般可以把 T s T_s Ts归一化为1,则 x ( n T s ) x(nT_s) x(nTs)可简记为 x ( n ) x(n) x(n)

(一直没写MATLAB,差点忘了,注释的符号是 %)

  • 例一
% x=cos(2t),抽样序列为0<=t<=2*pi,抽样周期T_s=0.1.
t=0:0.1:2*pi;
x=cos(2*t);
stem(t,x);

输出结果:

1)信号的相加或相乘
{ x ( n ) = x 1 ( n ) + x 2 ( n ) y ( n ) = x 1 ( n ) x 2 ( n ) \begin{cases} x(n) = x_1(n)+x_2(n)\\ y(n) = x_1(n)x_2(n) \end{cases} {x(n)=x1(n)+x2(n)y(n)=x1(n)x2(n)

  • 例二
% 信号x1(n)=sin(2*pi*0.1n)和x2(n)=exp(-0.1*n),
% 在0<=n<=40的相加和相乘序列
clear all;
n=1:40;
x1=sin(2*pi*0.1*n);
x2=exp(-0.1*n);
x=x1+x2;
y=x1.*x2;
subplot(4,1,1);stem(n,x1);title('x1');
subplot(4,1,2);stem(n,x2);title('x2');
subplot(4,1,3);stem(n,x);title('x');
subplot(4,1,4);stem(n,y);title('y');

输出结果:

2)卷积和
y ( n ) = ∑ m = − ∞ ∞ x ( m ) h ( n − m ) = x ( n ) ∗ h ( n ) (3-3) y(n)=\sum\limits_{m=-\infin}^{\infin}x(m)h(n-m)=x(n)*h(n)\tag{3-3} y(n)=m=x(m)h(nm)=x(n)h(n)(3-3)

  • 例三
% h(n)=exp(-0.1*n),x(n)=exp(-0.2*n),0<=n<=40的卷积和
clear all;
n=0:40;
h=exp(-0.1*n);
x=exp(-0.2*n);
y=conv(x,h);
subplot(3,1,1);stem(h);title('h');
subplot(3,1,2);stem(x);title('x');
subplot(3,1,3);stem(y);title('y');

输出结果:

3.1.2 离散时间信号
  • 离散时间系统可抽象为一种变换或一种映射,输入序列 x ( n ) x(n) x(n)变换为输出序列 y ( n ) y(n) y(n),即

y ( n ) = T [ x ( n ) ] (3-4) y(n)=T[x(n)]\tag{3-4} y(n)=T[x(n)](3-4)
式中, T T T代表变换。
离散时间系统:
在这里插入图片描述

  • 例四
    一个离散时间系统的输入和输出关系为:
    y ( n ) = a y ( n − 1 ) + x ( n ) (3-5) y(n)=ay(n-1)+x(n)\tag{3-5} y(n)=ay(n1)+x(n)(3-5)
    式中,a为常数。该系统表示,现在时刻的输入 y ( n ) y(n) y(n)等于上一次的输出 y ( n − 1 ) y(n-1) y(n1)乘以常数a再加上现在的输入 x ( n ) x(n) x(n),这是一个一阶的自回归差分方程,若
    ( 1 ) x ( n ) = { 1 , n = 0 0 , n ≠ 0 ( 2 ) x ( n ) = { e x p ( − 0.1 n ) , 0 ≤ n ≤ 40 0 , 其他 (1) \quad x(n)= \begin{cases} 1,n=0 \\ 0,n\neq0 \end{cases}\\ (2)\quad x(n)= \begin{cases} exp(-0.1n),& 0 \le n \le 40\\ 0, & \text{其他} \end{cases} (1)x(n)={1,n=00,n=0(2)x(n)={exp(0.1n),0,0n40其他
    a = 0.8 , y ( n ) = 0 , n < 0 , y ( 0 ) = x ( 0 ) a=0.8,y(n)=0,n<0,y(0)=x(0) a=0.8,y(n)=0,n<0,y(0)=x(0),是分别求上述系统在所给输入下的响应。
clear all
N=60;%序列长度
% 设置x1和x2
x1=zeros(1,N);
x1(1)=1;
x2=zeros(1,N);
x2(1:41)=exp(-0.1*(0:40));
% 初始状态设置
y1(1)=x1(1);
y2(1)=x2(1);
% 求取y(n)
for n=2:N
 y1(n)=0.8*y1(n-1)+x1(n);
 y2(n)=0.8*y2(n-1)+x2(n);
end
% 绘图
subplot(4,1,1);stem(x1);title('x1');
subplot(4,1,2);stem(x2);title('x2');
subplot(4,1,3);stem(y1);title('y1');
subplot(4,1,4);stem(y2);title('y2');

输出结果

  • 例五

一个离散时间系统的输入/输出关系为
y ( n ) = ∑ k = 0 M − 1 b ( k ) x ( n − k ) (3-6) y(n)=\sum\limits_{k=0}^{M-1}b(k)x(n-k)\tag{3-6} y(n)=k=0M1b(k)x(nk)(3-6)

式中, b ( 0 ) , b ( 1 ) , ⋯   , b ( M − 1 ) b(0),b(1),\cdots,b(M-1) b(0),b(1),,b(M1)为常数。

这一类系统为“有限冲激响应”系统,简称为FIR系统(上一时刻的输出对下一时刻的输出没有影响)。一阶自回归模型中由于包含了由输出到输入的反馈,因此其冲激响应为无限长,这一类系统称为“无限冲激响应”系统,简称IIR系统(包含上一时刻的输出对下一时刻输出的影响)。

在式(3-6)中,设 M = 3 , b ( 0 ) = 1 / 2 , b ( 1 ) = 1 / 8 , b ( 2 ) = 3 / 8 , x ( n ) = { 1 , 0 ≤ n ≤ 5 0 , 其他 M=3,b(0)=1/2,b(1)=1/8,b(2)=3/8,x(n)=\begin{cases}1,0 \le n \le 5 \\ 0,\text{其他} \end{cases} M=3,b(0)=1/2,b(1)=1/8,b(2)=3/8,x(n)={1,0n50,其他,试求其输出响应,

clear all
x = ones(1,6);
b = [1/2,1/8,3/8];
y=conv(x,b);
subplot(3,1,1);stem(x);title('x');
subplot(3,1,2);stem(b);title('b');
subplot(3,1,3);stem(y);title('y');

输出结果:

3.1.3 信号的能量和功率
  • 能量定义:
    E = ∫ − ∞ ∞ ∣ x ( t ) ∣ 2 d t (3-7) E = \int_{-\infin}^{\infin}|x(t)|^2 dt\tag{3-7} E=x(t)2dt(3-7)
    E = ∑ − ∞ ∞ ∣ x ( n ) ∣ 2 (3-8) E = \sum\limits_{-\infin}^{\infin}|x(n)|^2\tag{3-8} E=x(n)2(3-8)

如果 E < ∞ E < \infin E<,称 x ( t ) , x ( n ) x(t),x(n) x(t),x(n)为能量有限信号,简称能量信号; E > ∞ E > \infin E>,则称为能量无限信号。若 x ( t ) x(t) x(t) x ( n ) x(n) x(n)能量无限,往往开展其功率的研究,即
P = lim ⁡ T → ∞ 1 T ∫ − T / 2 T / 2 ∣ x ( t ) ∣ 2 d t (3-9) P=\lim\limits_{T \to \infin}\frac{1}{T}\int_{-T/2}^{T/2}|x(t)|^2dt\tag{3-9} P=TlimT1T/2T/2x(t)2dt(3-9)
P = lim ⁡ N → ∞ 1 2 N + 1 ∑ n = − N N ∣ x ( n ) ∣ 2 (3-10) P=\lim\limits_{N \to \infin}\frac{1}{2N+1}\sum\limits_{n=-N}^{N}|x(n)|^2\tag{3-10} P=Nlim2N+11n=NNx(n)2(3-10)

P < ∞ P < \infin P<,则称 x ( t ) , x ( n ) x(t),x(n) x(t),x(n)为功率有限信号,简称功率信号。

  • 周期信号、准周期信号与随机信号,由于其时间是无限的,因而为功率信号。一般在有限区间内存在的确定信号是能量信号。例如: x ( n ) = 1 , 1 ≤ n ≤ 100 x(n)=1,1 \le n \le 100 x(n)=1,1n100是能量信号, x ( n ) = s i n ( 2 π n ) , − ∞ ≤ n ≤ ∞ x(n)=sin(2\pi n),-\infin \le n \le \infin x(n)=sin(2πn),n是功率信号。

3.2 傅里叶(Fourier)分析

连续时间信号的Fourier变换和Fourier级数,数字信号处理中的离散Fourier变换(DFT)。

3.2.1 连续时间信号的Fourier变换

x ( t ) x(t) x(t)为以连续时间信号,若 x ( t ) x(t) x(t)绝对可积,即
∫ − ∞ ∞ ∣ x ( t ) ∣ d t < ∞ (3-11) \int_{-\infin}^{\infin}|x(t)|dt<\infin\tag{3-11} x(t)dt<(3-11)
那么, x ( t ) x(t) x(t)的Fourier变换存在,并定义为:
X ( j Ω ) = ∫ − ∞ ∞ x ( t ) e − j Ω t d t (3-12) X(j\Omega)=\int_{-\infin}^{\infin}x(t)e^{-j \Omega t}dt\tag{3-12} X(jΩ)=x(t)ejΩtdt(3-12)

其反变换为:
x ( t ) = 1 2 π ∫ − ∞ ∞ X ( j Ω ) e j Ω t d Ω (3-13) x(t)=\frac{1}{2\pi}\int_{-\infin}^{\infin}X(j\Omega)e^{j \Omega t}d \Omega\tag{3-13} x(t)=2π1X(jΩ)ejΩtdΩ(3-13)

式中, Ω = 2 π f \Omega=2 \pi f Ω=2πf,单位为rad/s,将 X ( j Ω ) X(j\Omega) X(jΩ)表示成 ∣ X ( j Ω ) ∣ e j φ ( Ω ) |X(j\Omega)|e^{j\varphi(\Omega)} X(jΩ)ejφ(Ω)的形式,即可得到 ∣ X ( j Ω ) ∣ |X(j\Omega)| X(jΩ) φ ( Ω ) \varphi(\Omega) φ(Ω)随 变化的曲线,分别成为幅频特性和相频特性

  • 例六

绘制 f ( t ) = t e − ∣ t ∣ f(t)=te^{-|t|} f(t)=tet的时域波形及傅里叶变化后的幅频特性。

clear all
% 定义符号变量t
syms t;
f = t*exp(-abs(t));
F = fourier(f)
% 绘制函数曲线
subplot(1,2,1);ezplot(f);
subplot(1,2,2);ezplot(abs(F));

  • 例七

某信号的Fourier变换 F ( ω ) = π e − ∣ ω ∣ F(\omega)=\pi e^{-|\omega|} F(ω)=πeω,试绘制该信号的时域波形和幅频特性。

clear all
syms t w;
F = pi*exp(-abs(w));
f = ifourier(F,t);
subplot(1,2,1);ezplot(abs(F));
subplot(1,2,2);ezplot(f);

  • 严格而将只有非周期函数才有Fourier变换,但若 x ( t ) x(t) x(t)是周期函数,即 ,此时不满足(3-11)的绝对可积条件,此时要求 x ( t ) x(t) x(t)​满足狄利克雷条件(Dirichlet),即:(1 )在一周期内,连续或只有有限个第一类间断点(该点含有左右极限);(2)在一周期内,极大值和极小值的数目应是有限个;(3)在一周期内,信号是绝对可积的。

  • Fourier级数为:
    x ( t ) = ∑ k = − ∞ ∞ X ( k Ω 0 ) e j k Ω 0 t , k = 0 , ± 1 , ⋯   , ± ∞ (3-14) x(t)=\sum\limits_{k=-\infin}^{\infin}X(k\Omega_0)e^{jk \Omega_0 t},k=0,\pm1,\cdots,\pm\infin\tag{3-14} x(t)=k=X(kΩ0)ejkΩ0t,k=0,±1,,±(3-14)
    其中 Ω 0 = 2 π / T 0 = 2 π f 0 \Omega_0=2\pi/T_0=2\pi f_0 Ω0=2π/T0=2πf0,为信号 x ( t ) x(t) x(t)的基波频率, k Ω 0 k\Omega_0 kΩ0为其第k次谐波频率: X ( k Ω 0 ) X(k\Omega_0) X(kΩ0)称为 x ( t ) x(t) x(t)在k次谐波处的Fourier系数,它的幅度反映了信号 x ( t ) x(t) x(t)中所包含的频率为 k Ω 0 k\Omega_0 kΩ0的成分大小。

  • 可以看出周期信号 x ( t ) x(t) x(t)可以由无数个复正弦 [ e j k Ω 0 t , k = 0 , ± 1 , ⋯   , ± ∞ ] [e^{jk\Omega_0 t},k=0,\pm 1,\cdots,\pm\infin] [ejkΩ0t,k=0,±1,,±] 作为基本信号再乘以不同的加权值 X ( k Ω 0 ) X(k\Omega_0) X(kΩ0)复合而成。 X ( k Ω 0 ) X(k\Omega_0) X(kΩ0)仅在 Ω 0 \Omega_0 Ω0的整数倍上取值,所以其在频率轴上取离散值, 即:
    X ( k Ω 0 ) = 1 T ∫ t t + T x ( t ) e − j k Ω 0 t d t (3-15) X(k\Omega_0)=\frac{1}{T}\int_{t}^{t+T}x(t)e^{-jk \Omega_0 t}dt\tag{3-15} X(kΩ0)=T1tt+Tx(t)ejkΩ0tdt(3-15)
    其中 X ( k Ω 0 ) X(k\Omega_0) X(kΩ0)是复数,所以
    X ( k Ω 0 ) = ∣ X ( k Ω 0 ) ∣ e j θ k X(k\Omega_0)=|X(k\Omega_0)|e^{j\theta_k} X(kΩ0)=X(kΩ0)ejθk
    式中, ∣ X ( k Ω 0 ) ∣ |X(k\Omega_0)| X(kΩ0)是频率为 n f 0 nf_0 nf0的分量的振幅, θ k \theta_k θk是频率是 n f 0 nf_0 nf0的分量的相位。

  • 注意 X ( k Ω 0 ) X(k\Omega_0) X(kΩ0) X ( j Ω ) X(j\Omega) X(jΩ)的物理意义不同,前者是 Ω \Omega Ω轴上的离散函数,后者则是 Ω \Omega Ω轴上的连续函数,同时前者是谐波幅度,后者是频谱密度。

  • 例八( Ω 0 = 2 π / T \Omega_0 = 2\pi/T Ω0=2π/T)
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ezyTS3QQ-1677072960929)(../../AppData/Roaming/Typora/typora-user-images/image-20230221191357027.png)]

clear all
k=-50:50;
X=0.25*sinc(k/4);
stem(k,X)
3.2.2 离散时间信号的Fourier变换
  • h ( n ) h(n) h(n)为一线形时不变系统的单位抽样响应,定义
    H ( e j ω ) = ∑ n = − ∞ ∞ h ( n ) e − j ω n (3-20) H(e^{j\omega})=\sum\limits_{n=-\infin}^{\infin}h(n)e^{-j\omega n}\tag{3-20} H(e)=n=h(n)ejωn(3-20)
    为系统的频率响应,记住了这是离散时间序列的Fourier变换(Discrete Time Fourier Transform, DTFT)。 H ( e j ω ) H(e^{j\omega}) H(e) ω \omega ω的连续函数,周期为 2 π 2\pi 2π 。其中 ω \omega ω为数字频率。(3-20)的DTFT是周期信号 H ( e j ω ) H(e^{j\omega}) H(e)在频域内展开成的Fourier级数,其Fourier系数是时域信号 h ( n ) h(n) h(n)

  • 离散信号 h ( n ) h(n) h(n)的DTFT存在的条件是 h ( n ) h(n) h(n)是绝对可和的,既满足:
    ∑ n = − ∞ ∞ ∣ h ( n ) ∣ < ∞ (3-21) \sum\limits_{n=-\infin}^{\infin} |h(n)| < \infin\tag{3-21} n=h(n)<(3-21)

  • 相应的,其DTFT反变换(IDTFT)可以表示为:
    h ( n ) = 1 2 π ∫ − π π H ( e j ω ) e j ω n d ω (3-22) h(n)=\frac{1}{2\pi}\int_{-\pi}^{\pi}H(e^{j\omega})e^{j\omega n}d\omega\tag{3-22} h(n)=2π1ππH(e)ejωndω(3-22)
    根据上述DTFT的定义,可以利用MATLAB,由 h ( n ) h(n) h(n)直接计算 H ( e j ω ) H(e^{j\omega}) H(e)在频率区间 [ 0 , π ] [0,\pi] [0,π]的值并绘制对应的模和相角。

  • 假设序列 h ( n ) h(n) h(n)在区间 n 1 ≤ n ≤ n 2 n_1 \le n \le n_2 n1nn2 N N N个样本值,要计算其在下述频率点上的 H ( e j ω ) H(e^{j\omega}) H(e)
    ϖ k = k π M , k = 0 , 1 , ⋯   , M − 1 (3-23) \varpi_k = k\frac{\pi}{M},k=0,1,\cdots,M-1\tag{3-23} ϖk=kMπ,k=0,1,,M1(3-23)
    首先定义一个 ( M + 1 ) × N (M+1) \times N (M+1)×N 的矩阵,即
    W = W ( k , n ) = e − j ( π M ) k n , n 1 ≤ n ≤ n 2 , k = 0 , 1 , ⋯   , M − 1 (3-24) \boldsymbol W={W(k,n)=e^{-j(\frac{\pi}{M})kn},n_1 \le n \le n_2,k=0,1,\cdots,M-1}\tag{3-24} W=W(k,n)=ej(Mπ)kn,n1nn2,k=0,1,,M1(3-24)
    如果将 { k } \{k\} {k} { n } \{n\} {n}写为列矢量,则有
    W = [ e − j ( π / M ) K T n ] (3-25) \boldsymbol W=[e^{-j(\pi/M)K^Tn}]\tag{3-25} W=[ej(π/M)KTn](3-25)
    于是,在所求频率点上的 H ( e j ω ) H(e^{j\omega}) H(e)值可以写为:
    H T = h T ∗ W (3-26) H^T=h^T*\boldsymbol W\tag{3-26} HT=hTW(3-26)

  • 例九

w = -4:0.001:4;
n1=-15:15;
n2=0:20;
h1=exp(-abs(0.1*n1));
h2(n2+1)=1;
Hjw1=h1*(exp(-j*pi).^(n1'*w));
Hjw2=h2*(exp(-j*pi).^(n2'*w));
subplot(2,1,1);plot(w,abs(Hjw1));
title('H1');xlabel('pi 弧度(w)');ylabel('振幅');
subplot(2,1,2);plot(w,abs(Hjw2));
title('H2');xlabel('pi 弧度(w)');ylabel('振幅');


离散时间信号的Fourier变换的性质十分重要,如卷积性质、频移性质等。
DTFT的频移性质是指,序列乘以复指数序列对应于频域的频移,即
D T F T ( h ( n ) e j ω 1 n ) = H ( e j ( ω − ω 1 ) ) (3-27) DTFT(h(n)e^{j\omega_1 n})=H(e^{j(\omega-\omega_1)})\tag{3-27} DTFT(h(n)ejω1n)=H(ej(ωω1))(3-27)

  • 例十

给定序列 h ( n ) = 1 , 0   l e n ≤ 20 h(n)=1,0 \ le n \le 20 h(n)=1,0 len20 x ( n ) = h ( n ) e j π n / 4 x(n)=h(n)e^{j\pi n/4} x(n)=h(n)ejπn/4,分别计算它们的离散时间Fourier,并比较结果。

clear all
w=-1:0.001:1;
n=0:20;
h(n+1)=1;
x=h.*exp(j*pi*n/4);
Hjw=h*(exp(-j*pi).^(n'*w));
Xjw=x*(exp(-j*pi).^(n'*w));
subplot(2,2,1);plot(w,abs(Hjw));
title('H');xlabel('pi 弧度(w)');ylabel('振幅');
subplot(2,2,2);plot(w,angle(Hjw)/pi);
title('H');xlabel('pi 弧度(w)');ylabel('振幅');
subplot(2,2,3);plot(w,abs(Xjw));
title('X');xlabel('pi 弧度(w)');ylabel('振幅');
subplot(2,2,4);plot(w,angle(Xjw)/pi);
title('X');xlabel('pi 弧度(w)');ylabel('振幅');

一个单位脉冲响应为 h ( n ) h(n) h(n)的系统对输入序列 x ( n ) x(n) x(n)的输出为:
y ( n ) = x ( n ) ∗ h ( n ) (3-28) y(n)=x(n)*h(n)\tag{3-28} y(n)=x(n)h(n)(3-28)
根据DTFT的卷积性质,有:
Y ( e j ω ) = D T F T [ y ( n ) ] = D T F T [ x ( n ) ∗ h ( n ) ] = X ( e j ω ) H ( e j ω ) (3-29) Y(e^{j\omega})=DTFT[y(n)]=DTFT[x(n)*h(n)]=X(e^{j\omega})H(e^{j\omega})\tag{3-29} Y(e)=DTFT[y(n)]=DTFT[x(n)h(n)]=X(e)H(e)(3-29)
可以利用这一性质求系统在输入信号为 x ( n ) x(n) x(n)时的系统响应。可以先求出 X ( e j ω ) X(e^{j\omega}) X(e) H ( e j ω ) H(e^{j\omega}) H(e),进而求出 Y ( e j ω ) Y(e^{j\omega}) Y(e),再通过IDTFT求出 y ( n ) y(n) y(n),绕过求卷积的步骤。

  • 例11 一个系统的单位脉冲响应 h ( n ) = s i n ( 0.2 n ) e − 0.1 n , 0 ≤ n ≤ 30 h(n)=sin(0.2n)e^{-0.1n},0 \le n \le 30 h(n)=sin(0.2n)e0.1n,0n30,试求:
    (1)该系统的频率响应;
    (2)若输入信号为 x ( n ) = 2 s i n ( 0.2 π n ) + 3 c o s ( 0.4 π n ) , 0 ≤ n ≤ 30 x(n)=2sin(0.2\pi n)+3cos(0.4\pi n),0 \le n \le 30 x(n)=2sin(0.2πn)+3cos(0.4πn),0n30,确定该系统的稳态输出。
clear all
w=-1:0.001:1;
n=0:30;
h=sinc(0.2*n);
x=2*sin(0.2*pi*n)+3*cos(0.4*pi*n);
Hjw=h*exp(-j*pi).^(n'*w);
Xjw=x*exp(-j*pi).^(n'*w);
Yjw=Xjw.*Hjw;
n1=0:2*length(n)-2;
dw=0.001*pi;
y=(dw*Yjw*(exp(j*pi).^(w'*n1)))/(2*pi);
y1=conv(x,h);
subplot(3,1,1);plot(w,abs(Hjw))
title('H');xlabel('pi 弧度(w)');ylabel('振幅');
subplot(3,1,2);plot(w,abs(Xjw))
title('X');xlabel('pi 弧度(w)');ylabel('振幅');
subplot(3,1,3);plot(w,abs(Yjw))
title('Y');xlabel('pi 弧度(w)');ylabel('振幅');

3.2.3 离散Fourier变换
  • 3.2.2节学习的DTFT的特点是:(1)变换使用无限长的序列;(2)变换的结果是自变量 ω \omega ω的连续函数。(时域上连续,在计算机的使用上很难实现。)因而需要一种时域和频域上都离散的计算方法,这便是离散Fourier变换(DFT),也成为快速Fourier变换(FFT)。
  • 给定一个离散序列 x ( n ) x(n) x(n),其DFT和IDFT如下:

{ X ( k ) = ∑ n = 0 N − 1 x ( n ) e − j 2 π n n k = ∑ n = 0 N − 1 x ( n ) W N n k , k = 0 , 1 , ⋯   , N − 1 x ( n ) = 1 N ∑ n = 0 N − 1 X ( k ) e j 2 π n n k = 1 N ∑ n = 0 N − 1 x ( n ) W N − n k , n = 0 , 1 , ⋯   , N − 1 (3-30) \begin{cases} X(k)=\sum\limits_{n=0}^{N-1}x(n)e^{-j\frac{2\pi}{n}nk}=\sum\limits_{n=0}^{N-1}x(n)W_N^{nk},k=0,1,\cdots,N-1 \\ x(n)=\frac{1}{N}\sum\limits_{n=0}^{N-1}X(k)e^{j\frac{2\pi}{n}nk}=\frac{1}{N}\sum\limits_{n=0}^{N-1}x(n)W_N^{-nk},n=0,1,\cdots,N-1\tag{3-30} \end{cases} X(k)=n=0N1x(n)ejn2πnk=n=0N1x(n)WNnk,k=0,1,,N1x(n)=N1n=0N1X(k)ejn2πnk=N1n=0N1x(n)WNnk,n=0,1,,N1(3-30)

式中, W N = e − j 2 π N W_N=e^{-j\frac{2\pi}{N}} WN=ejN2π。DFT对应的是时域和频域都是有限长,且都是离散的。

  • 例十二 离散序列 x ( n ) = s i n ( 0.2 n ) e − 0.1 n , 0 ≤ n ≤ 30 x(n)=sin(0.2n)e^{-0.1n},0 \le n \le 30 x(n)=sin(0.2n)e0.1n,0n30,试求该序列的DFT。
clear all
n=0:30;
x=sin(0.2*n).*exp(-0.1*n);
k=-0:30;
N=31;
Wnk=exp(-j*2*pi/N).^(n'*k);
X=x*Wnk;
subplot(2,1,1);stem(n,x);title('序列x');
% DFT默认的下标范围是[0,N-1],采取对下标的重新排列,
% 体现序列DFT的对称性
subplot(2,1,2);stem(-15:15, [abs(X(17:end)) abs(X(1:16))]);title('X幅度');

输出结果

  • MATLAB提供fft函数计算优先离散序列的DFT,DFT的循环卷积性质,可以设序列 x ( n ) , h ( n ) x(n),h(n) x(n),h(n)都是N点序列,其DFT分别是 X ( k ) , H ( k ) , Y ( k ) X(k),H(k),Y(k) X(k),H(k),Y(k),若


Y ( k ) = X ( k ) H ( k ) (3-32) Y(k)=X(k)H(k)\tag{3-32} Y(k)=X(k)H(k)(3-32)

式中圈中间一个N的符号表示做N点循环卷积。

  • 一般对两个N点序列的循环卷积,其矩阵形式如下:
    y = [ y ( 0 ) y ( 1 ) ⋮ y ( N − 1 ) ] = [ h ( 0 ) h ( N − 1 ) ⋯ h ( 1 ) h ( 1 ) h ( 0 ) ⋯ h ( 2 ) ⋮ ⋮ ⋮ h ( N − 1 ) h ( N − 2 ) ⋯ h ( 2 ) ] ⋅ [ x ( 0 ) x ( 1 ) ⋮ x ( N − 1 ) ] = H ⋅ x (3-33) y=\begin{bmatrix}y(0)\\y(1)\\ \vdots\\y(N-1)\end{bmatrix}=\begin{bmatrix}&h(0) &h(N-1) &\cdots h(1)\\&h(1) &h(0) &\cdots h(2)\\ &\vdots &\vdots &\vdots\\&h(N-1) &h(N-2) &\cdots h(2)\\ \end{bmatrix} \cdot \begin{bmatrix}x(0)\\x(1)\\ \vdots\\x(N-1)\end{bmatrix}=\boldsymbol {H \cdot x}\tag{3-33} y= y(0)y(1)y(N1) = h(0)h(1)h(N1)h(N1)h(0)h(N2)h(1)h(2)h(2) x(0)x(1)x(N1) =Hx(3-33)

式(3-33)中矩阵 H H H成为循环矩阵,由第1行开始,依次向右移动一个元素,移出去的元素在下一行的最左边出现,即每一行都是由 h ( 0 ) , h ( N − 1 ) , ⋯   , h ( 1 ) h(0),h(N-1),\cdots,h(1) h(0),h(N1),,h(1)这N个元素依此法则移动所生成的,故成为 H H H为循环矩阵,因此对应的卷积为循环卷积。

  • 例十三

已知序列 h ( n ) = 6 , 3 , 4 , 2 , 1 , − 2 , x ( n ) = 3 , 2 , 6 , 7 , − 1 , − 3 ) h(n)={6,3,4,2,1,-2},x(n)={3,2,6,7,-1,-3}) h(n)=6,3,4,2,1,2,x(n)=3,2,6,7,1,3),试分别用直接法和DFT,求两个序列的循环卷积序列。

% examp-13
clear all
h = [6 3 4 2 1 -2];
x = [3 2 6 7 -1 -3];
% 反转序列h
h1=fliplr(h);
% 利用toeolitz生成循环矩阵
H=toeplitz(h,[h(1) h1(1:5)]);
y=H*x';

H=fft(h);
X=fft(x);
Y=H.*X;
y1=ifft(Y);

subplot(2,1,1);stem(y);title('直接计算')
subplot(2,1,2);stem(y1);title('DFT')

输出结果:

  • x ( n ) x(n) x(n)为一 M M M点序列, h ( n ) h(n) h(n)为一 L L L点序列, y ( n ) = x ( n ) ∗ h ( n ) y(n)=x(n)*h(n) y(n)=x(n)h(n),即 y ( n ) y(n) y(n) x ( n ) x(n) x(n) h ( n ) h(n) h(n)的线性卷积,那么 y ( n ) y(n) y(n)是一 ( M + L − 1 ) (M+L-1) (M+L1)点的序列。由上面的讨论可知,DFT对应循环卷积而不对应线性卷积。如果利用DFT计算两个序列的线性卷积,则可以采用以下方法:

  • 例十四

    已知序列 h ( n ) = s i n c ( 0.2 n ) , 0 ≤ n ≤ 20 , x ( n ) = e − 0.2 n , 0 ≤ n ≤ 10 h(n)=sinc(0.2n),0 \le n \le 20,x(n)=e^{-0.2n},0 \le n \le 10 h(n)=sinc(0.2n),0n20,x(n)=e0.2n,0n10,试分别用直接法和DFT法求两个序列的线性卷积序列。

    %exmap-14
    clear all
    n1=0:20;
    n2=0:10;
    h=sinc(0.2*n1);
    x=exp(-0.2*n2);
    y=conv(x,h);
    
    % 补齐M+L-1的长度
    h1=[h zeros(1,length(x)-1)];
    x1=[x zeros(1,length(h)-1)];
    H1=fft(h1);
    X1=fft(x1);
    Y1=H1.*X1;
    y1=ifft(Y1);
    
    subplot(2,1,1);stem(y);title('直接计算');
    subplot(2,1,2);stem(y1);title('DFT');
    

输出结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/364610.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IDEA-使用插件远程连接Redis

前言 IDEA连接Redis可视化&#xff0c;可以在IDEA中&#xff0c;删除存储的缓存等操作 使用 点击工具栏的File->Settings->Plugins&#xff0c;然后进行搜索Redis,我这里下载过了 然后点击Install进行下载&#xff0c;下载好后&#xff0c;重启IDE 然后会提示&#xf…

什么是Struts2?有哪些优势

Java中Strutsl是最早的基于MVC模式的轻量级Web框架&#xff0c;它能够合理地划分代码结构&#xff0c;并包含验证框架、国际化框架等多种实用工具框架。但是随着技术的进步&#xff0c;Struts1的局限性也越来越多地暴露出来。为了符合更加灵活、高效的开发需求&#xff0c;Stru…

求职者:“我有五年测试经验”面试官: “不,你只是把一年的工作经验用了五年”

最近看到很多软件测试由于公司裁员而需要重新求职的。他们普遍具有4年甚至更长的工作经验。但求职结果往往都不太理想。 我在与部分软件测试求职者交谈的过程中发现&#xff0c;很多人的工作思路不清晰&#xff0c;技能不扎实&#xff0c;没有持续学习的习惯&#xff0c;但对于…

非对称密钥PKCS#1和PKCS#8格式互相转换(Java)

目录一、序言二、代码示例1、Maven依赖2、工具类封装三、测试用例1、密钥文件2、公私钥PKCS1和PKCS8格式互相转换一、序言 之前在 《前后端RSA互相加解密、加签验签、密钥对生成》 中提到过PKCS#1格式和PKCS#8格式密钥的区别以及如何生成密钥。实际有些场景中有可能也会涉及到…

过来人的忠告:如何入门网络安全?

前沿概述 随着2017年《网络安全法》颁布和2019年《等保2.0》正式实施&#xff0c;以及越来越多大学开设网络空间安全、电子对抗等专业&#xff0c;网络安全也被大家熟知&#xff0c;很多人想入行网络安全。作为信息安全毕业&#xff0c;也在安全领域摸爬滚打十年的我&#xff…

和平精英五曜赐福返场,老款玛莎返场来了

和平精英五曜赐福返场&#xff0c;老款玛莎返场来了&#xff01;新款如何选择&#xff01; 关于返场的新消息&#xff0c;都说云南百收SEO解说消息不准&#xff0c;之前看过文章的应该会知道&#xff0c;全网只有云南百收SEO解说发了。玛莎返场&#xff0c;快喊你的阿姨来看&a…

wordpress 网站备份

一个网站从建站完成之日&#xff0c;备份的问题就要提上日程。不论是后期的更换服务器&#xff0c;更换域名&#xff0c;未知故障导致网站崩溃&#xff0c;数据丢失&#xff0c;只要我们有完整的备份&#xff0c;就能将损失降到最低。wordpress网站的备份方法多种多样&#xff…

将闲置的Ipad作为Windows的副屏(Twomon SE)

目录一、前言二、方法第一步 安装软件第二步 使用步骤三、注意一、前言 在看网课的时候&#xff0c;总有种不得劲的感觉&#xff0c;来来回回的切换就很糟心~~无意间看见闲置的板砖&#xff08;Ipad&#xff09;&#xff0c;计上心来-- _ – 期间也尝试过免费的软件&#xff…

【面试题】TCP如何保证传输可靠性?TCP流量控制实现、拥塞控制、ARQ协议、停止等待ARQ、连续ARQ

文章目录1. TCP 如何保证传输的可靠性&#xff1f;2.TCP 如何实现流量控制&#xff1f;3.TCP 的拥塞控制是怎么实现的&#xff1f;3.ARQ 协议了解吗?4.停止等待 ARQ 协议5.连续 ARQ 协议1. TCP 如何保证传输的可靠性&#xff1f; 基于数据块传输 &#xff1a;应用数据被分割成…

【C++】C++入门(上)

前言&#xff1a; C是在C语言的基础上不断添加东西形成的一门语言&#xff0c;在C语言的基础上引入了面向对象的思想。因此C既是面向对象的语言&#xff0c;也是面向过程的语言。因为C是以C语言为基础的&#xff0c;所以基本上C兼容所有的C语言。目前最常用的版本是C98和C11这两…

Java通过SNMP4J管理设备

一、Windows开启SNMP服务这里以Windows11为例&#xff1a;1、安装SNMP服务(1)通过winx快捷键打开电脑“设置”&#xff0c;然后在“应用”中选择”可选功能“。(2)点击”可选功能“的”查看功能“(3)找到并勾选“WMI SNMP 供应商"&#xff0c;再点击”下一步“。这里借用下…

【MySQL】sql中explain解释和应用

这里写目录标题学习原因MySQL中explain的使用和用法解释explain的使用explain 运行结果的意义文字展示表格展示参考资料&#xff1a;结束语学习原因 在对sql的优化过程中使用了explain对指定的sql进行查看它的运行效果&#xff0c;以便找出sql的性能特点并进行优化 MySQL中ex…

20230222解决在WIN7下的UltraEdit9不能新建文件但是可以打开TXT文件

20230222解决在WIN7下的UltraEdit9不能新建文件但是可以打开TXT文件 2023/2/22 17:34 UltraEdit-32 Cannot edit file Cant create tempory file 确定 解决方式&#xff1a; C:\Users\Administrator\AppData\Local\Temp目录下的内容清除即可。 Temp文件夹竟然写满了&#xff…

Python进阶知识

目录 一、装饰器和闭包 1、装饰器 decorator 2、闭包 closure 二、迭代器与生成器 二、面向对象编程 1、概念 2、类和对象 2.1 概念 2.2 定义类和创建对象 2.3 __init__(self): 2.4 self的理解 3、魔术方法 3.1__str__() 3.2 __new__() 4、析构方法 5、类的继…

在CentOS-7.9配置vsftpd服务

文章目录一 vsftpd简介二 环境准备三 服务部署3.1 安装软件3.2 编写配置文件3.3 用户授权3.4 启动服务3.5 文件传输测试3.5.1 Windows到Linux3.5.2 filezilla3.5.3 从Linux到Linux一 vsftpd简介 FTP是 File Transfer Protocol 文件传输协议的简称。 VSFTP是 Very Security FTP…

【QT】史上最全最详细的QSS样式表用法及用例说明

目录1. Qt样式表语法2. 选择器2.1 可设置样式的部件2.2 选择器类型2.3 子控件2.4 伪状态3. 属性列表4. 冲突解决5. qss示例1. Qt样式表语法 Qt样式表支持各种属性、伪状态和子控件&#xff0c;可以自定义小部件的外观。 selector { attribute: value }selector:选择器&#xf…

Android Gradle 学习笔记(四)构建块基本单元掌握

本篇主要学习 Gradle 构建脚本的三个基本组建成&#xff1a; project 项目task 任务property 属性 我将会重点介绍 Task&#xff0c;因为它是所有基础中的基础&#xff0c; project 的知识更多和实战有关&#xff08;例如模块化&#xff09;&#xff0c;而 property 本身不过…

新手怎么快速学会并上手SQL语言?收藏版

SQL可以说是程序员、数据库管理员DBA、数据分析师等需要做数据处理和分析岗位最常用的程序语言了。 尤其是一些岗位&#xff0c;工作中并非以数据库为核心&#xff0c;只是偶尔用些数据不需要深度学习&#xff0c;不得不自己去做一些取数的事情&#xff0c;只要学会通过SQL取数…

PS_高低频和中性灰——双曲线

高低频 高低频磨皮&#xff1a;把皮肤分成两个图层&#xff0c;一层是纹理层也就是皮肤的毛孔。 一层是皮肤光滑层没有皮肤细节。 高频”图层为细节层&#xff0c;我们用图章工具修高频 “低频”图层为颜色层&#xff0c;我们用混合画笔修低频 原理&#xff1a;修颜色亮度光影…

用户投稿——详解我了解的 TDengine 以及它所在的时序数据库“战场”

作者&#xff1a;大数据模型本篇文章出自 2022 年“用 TDengine&#xff0c;写 TDengine”征文投稿活动。因为工作的关系&#xff0c;最近几年我接触到过各种国产数据库&#xff0c;唯独对 TDengine 念念不忘。在众多数据库中&#xff0c;TiDB 一枝独秀&#xff0c;OceanBase 出…