【数字信号处理】傅里叶变换性质 ( 傅里叶变换频移性质示例 | PCM 音频信号处理 | 使用 matlab 进行频移操作 )
生活随笔
收集整理的這篇文章主要介紹了
【数字信号处理】傅里叶变换性质 ( 傅里叶变换频移性质示例 | PCM 音频信号处理 | 使用 matlab 进行频移操作 )
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 一、PCM 音頻信號處理
- 二、要點說明
一、PCM 音頻信號處理
給定一段 PCM 音頻數據 , 封裝到 .WAV 文件 中 ,
此時的信號 是 實信號 , 每個 PCM 音頻采樣都是一個 實數值 ,
繪制該 音頻數據 實信號 的 " 幅頻特性 " ,
將該 PCM 音頻的 頻率 移動 6kHz6kHz6kHz ,
頻移后的 音頻信號 變成了 復信號 ,
繪制該 復信號的 " 幅頻特性 " ;
準備一個 wav 格式的音頻文件 , 該 music.wav 文件是一個
161616 位
單聲道
44100Hz44100Hz44100Hz 采樣率
的音頻文件 , 其 采樣波形 與 頻譜 如下 :
代碼示例 :
% wave 文件采樣 pcmFileName='music.wav';% 讀取 music.wav 文件 % s1 是讀取的信號向量 % sampleRate 是采樣率 44100Hz 表示每秒有 44100 個音頻樣本 [signal,sampleRate] = audioread(pcmFileName);% 上面的 sampleRate 計算出來是 44100 單位是 Hz % 這里需要將 sampleRate 的單位變為 kHz , 除以 1000 sampleRate = sampleRate/1000;% 矩陣轉置 % 將 1x132300 矩陣轉為 132300x1 矩陣 signalT=signal';% 取 信號 的前 2048 個點進行分析 x=signalT(1:2048);% 求 signalT 實信號的 頻譜 xf=20 * log10(abs(fft(x,4096))); xf1(1:2048)=xf(2049:4096); xf1(2049:4096)=xf(1:2048);% 繪制實信號的頻譜圖 figure; plot((-2048:2047) * sampleRate/4096,xf1); grid on;% 根據 傅里葉變換 頻移性質, 進行頻譜搬移 % 頻率搬移 6kHz y=x.*exp(2*j*pi*6/32*(0:2047));% 求 signalT 頻移后的 復信號的 頻譜 yf=20*log10(abs(fft(y,4096))); yf1(1:2048)=yf(2049:4096); yf1(2049:4096)=yf(1:2048);% 繪制頻率搬移 6kHz 后的復信號的頻譜圖 figure; plot((-2048:2047)*fs/4096,yf1); grid on;二、要點說明
根據 圖1 所示 , 實信號的 " 幅頻特性 " 是 偶對稱的 ;
圖2 復信號 的 " 幅頻特性 " , 向右平移了 6 kHz , 此時就不是 偶對稱 了 ;
傅里葉變換時移 只影響 " 相頻特性 " , 不影響 " 幅頻特性 " ;
傅里葉變換頻移 同時影響 " 相頻特性 " 和 " 幅頻特性 " ;
總結
以上是生活随笔為你收集整理的【数字信号处理】傅里叶变换性质 ( 傅里叶变换频移性质示例 | PCM 音频信号处理 | 使用 matlab 进行频移操作 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【数字信号处理】傅里叶变换性质 ( 傅里
- 下一篇: 【Google Play】Android