【数字信号处理】卷积编程实现 ( Matlab 卷积和多项式乘法 conv 函数 | 使用 matlab 代码求卷积并绘图 )
文章目錄
- 一、Matlab 卷積和多項(xiàng)式乘法 conv 函數(shù)
- 二、使用 matlab 代碼求卷積并繪圖
一、Matlab 卷積和多項(xiàng)式乘法 conv 函數(shù)
Matlab 文檔地址 : https://ww2.mathworks.cn/help/matlab/ref/conv.html
函數(shù)語(yǔ)法 :
// 返回向量 u 和 v 的卷積。如果 u 和 v 是多項(xiàng)式系數(shù)的向量,對(duì)其卷積與將這兩個(gè)多項(xiàng)式相乘等效。 w = conv(u,v) // 返回如 shape 指定的卷積的分段。 // 例如,conv(u,v,'same') 僅返回與 u 等大小的卷積的中心部分, // 而 conv(u,v,'valid') 僅返回計(jì)算的沒(méi)有補(bǔ)零邊緣的卷積部分。 w = conv(u,v,shape)uuu 是 " 輸入序列 " , vvv 是 " 單位脈沖響應(yīng) " ;
二、使用 matlab 代碼求卷積并繪圖
求下面的 " 線性時(shí)不變系統(tǒng) " 的 輸出序列 ;
輸入序列 : x(n)=sin(2πf0n/Fs),0≤n≤127x(n) = sin(2\pi f_0n/F_s) , \ 0 \leq n \leq 127x(n)=sin(2πf0?n/Fs?),?0≤n≤127 ,
f0=0.4kHz,Fs=10kHzf_0 = 0.4kHz , F_s = 10kHzf0?=0.4kHz,Fs?=10kHz
單位脈沖響應(yīng) :
h(n)={1,2,3,4,5,6,7,8,9,10,11,10,9,8,7,6,5,4,3,2,1}h(n) = \{ 1,2,3,4,5,6,7,8,9,10,11,10,9,8,7,6,5,4,3,2,1 \}h(n)={1,2,3,4,5,6,7,8,9,10,11,10,9,8,7,6,5,4,3,2,1}
上述系統(tǒng)的輸出就是 " 輸入序列 " 與 " 輸出序列 " 的卷積 ;
參考 【數(shù)字信號(hào)處理】基本序列 ( 正弦序列 | 數(shù)字角頻率 ω | 模擬角頻率 Ω | 數(shù)字頻率 f | 模擬頻率 f0 | 采樣頻率 Fs | 采樣周期 T ) 博客進(jìn)行理解 ;
f0=0.4kHzf_0 = 0.4kHzf0?=0.4kHz 表示模擬信號(hào)頻率是 0.4kHz0.4kHz0.4kHz ,
Fs=10kHzF_s = 10kHzFs?=10kHz 表示數(shù)字采樣頻率是每秒采集 10k10k10k 個(gè)樣本 , 也就是 100001000010000 個(gè)樣本 ;
x(n)x(n)x(n) 默認(rèn)是一個(gè)無(wú)限序列 , 為了方便計(jì)算 , 這里為其加了一個(gè)區(qū)間 0≤n≤1270 \leq n \leq 1270≤n≤127 ;
數(shù)字頻率計(jì)算 :
數(shù)字頻率 ( 單位 Hz ) : f=f0/Fs=0.4/10=0.04f = f_0 / F_s = 0.4 / 10 = 0.04f=f0?/Fs?=0.4/10=0.04
matlab 代碼示例 :
%清除內(nèi)存 clear;%輸入序列 , 模擬信號(hào)頻率 0.4kHz , 采樣頻率 10kHz % n 的取值范圍是 0 到 127 閉區(qū)間整數(shù)序列 x=sin(2 * pi * 0.4 * (0:127) / 10);%單位脈沖響應(yīng) %1,2,3,4,5,6,7,8,9,10,11,10,9,8,7,6,5,4,3,2,1 %1 ~ 10 索引的序列就是 1,2,3,4,5,6,7,8,9,10 h(1:10)=(1:10); %11 索引的序列是 11 h(11)=11; %12 ~ 21 索引的序列是 10,9,8,7,6,5,4,3,2,1 h(12:21)=(10:-1:1);%求 " 單位脈沖響應(yīng) " 序列的頻譜 hf = freqz(h, 1, 1024); %求 " 輸入序列 " 的頻譜 xf = freqz(x, 1, 1024);%求卷積 , 線性時(shí)不變系統(tǒng)的輸出序列就是 輸入序列 與 單位脈沖響應(yīng) 之間的卷積 y=conv(h,x);%建立幕布 figure; %繪制 "輸入序列" 圖像 plot(x);%建立幕布 figure; %繪制 "單位脈沖響應(yīng)" 圖像 plot(h);%建立幕布 figure; %繪制 y 函數(shù)的值 , 也就是卷積計(jì)算結(jié)果 plot(y);% 打開(kāi)網(wǎng)格 grid on;輸入序列 x(n)x(n)x(n) 的函數(shù)圖像如下 :
單位脈沖響應(yīng) h(n)h(n)h(n) 函數(shù)圖像如下 :
輸出序列 y(n)y(n)y(n) 圖像如下 :
總結(jié)
以上是生活随笔為你收集整理的【数字信号处理】卷积编程实现 ( Matlab 卷积和多项式乘法 conv 函数 | 使用 matlab 代码求卷积并绘图 )的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【数字信号处理】线性时不变系统 LTI
- 下一篇: 【数字信号处理】离散时间系统因果性 (