数字信号处理傅里叶变换性质 ( 傅里叶变换频移性质示例 | PCM 音频信号处理 | 使用 matlab 进行频移操作 )
Posted 韩曙亮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数字信号处理傅里叶变换性质 ( 傅里叶变换频移性质示例 | PCM 音频信号处理 | 使用 matlab 进行频移操作 )相关的知识,希望对你有一定的参考价值。
文章目录
一、PCM 音频信号处理
给定一段 PCM 音频数据 , 封装到 .WAV 文件 中 ,
此时的信号 是 实信号 , 每个 PCM 音频采样都是一个 实数值 ,
绘制该 音频数据 实信号 的 " 幅频特性 " ,
将该 PCM 音频的 频率 移动 6 k H z 6kHz 6kHz ,
频移后的 音频信号 变成了 复信号 ,
绘制该 复信号的 " 幅频特性 " ;
准备一个 wav 格式的音频文件 , 该 music.wav 文件是一个
16 16 16 位
单声道
44100 H z 44100Hz 44100Hz 采样率
的音频文件 , 其 采样波形 与 频谱 如下 :
代码示例 :
% 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 进行频移操作 )的主要内容,如果未能解决你的问题,请参考以下文章
数字信号处理傅里叶变换性质 ( 傅里叶变换频移性质 | 证明过程 )
数字信号处理傅里叶变换性质 ( 傅里叶变换频移性质 | 证明过程 )
数字信号处理傅里叶变换性质 ( 傅里叶变换频移性质示例 | PCM 音频信号处理 | 使用 matlab 进行频移操作 )
数字信号处理傅里叶变换性质 ( 傅里叶变换频移性质示例 | PCM 音频信号处理 | 使用 matlab 进行频移操作 )