二、正交调制
1.读取wav音乐文件
% 读取音频文件 filename = 'jay.wav'; [sound_data, fs] = audioread(filename); % 9507502x2 44100 sound_data_1 = sound_data(:, 1); sound_data_1 = sound_data_1'; % 转置
sound_data有两列,因为此音乐文件有两个通道,音频采样率为44100;
这里只使用其中一个通道数据;
将多行数据转置为单行数据,方便后续调制
2.调制
% 调制参数 carrier_freq = 10e3; % 载波频率 % modulation_index = 1; % 调制指数 信号的幅度/载波的幅度 % dc = 1; % 直流偏置 % sound_data_1_i = dc + modulation_index*sound_data_1_i; % sound_data_1_q = dc + modulation_index*sound_data_1_q; % 创建载波信号 t = (0:length(sound_data_1)-1) / fs; carrier_i = cos(2*pi*carrier_freq*t); carrier_q = sin(2*pi*carrier_freq*t); % 进行正交调制 modulated_signal_i = sound_data_1_i .* carrier_i; modulated_signal_q = sound_data_1_q .* carrier_q; modulated_signal = modulated_signal_i+modulated_signal_q;
关于一些参数:
调制指数:也叫调制深度,定义为调制信号振幅与载波振幅之间的比例。调制指数决定了调制信号对载波振幅的影响程度。
直流偏置:AM调制时需要将基带信号往上搬移的幅值,保证信号所有采样点都在正轴
3.包络检波解调
%%%%%%%%%%%%%%1.使用接口解调,包络检波%%%%%%%%%%%%% % 解调恢复原始信号 demodulated_signal = amdemod(modulated_signal, carrier_freq, fs, 0, 0); % 播放解调后的音频 sound(demodulated_signal, fs);
4.相干解调
%%%%%%%%%%%%%%相干解调%%%%%%%%%%%%% % demodulated_signal = modulated_signal .* carrier_i; demodulated_signal = modulated_signal .* carrier_q; % 设计低通滤波器 [b, a] = butter(6, carrier_freq/(fs/2)); % 设计6阶低通滤波器 % 低通滤波 filtered = filter(b, a, demodulated_signal); subplot(2, 1, 1); plot(modulated_signal); subplot(2, 1, 2); plot(filtered); sound(filtered, fs); % fs为采样率
标签:sound,解调,signal,音频文件,modulated,carrier,Matlab,wav,data From: https://www.cnblogs.com/judes/p/17542673.html