Matlab中的立体声FM调制

时间:2014-11-16 22:22:31

标签: matlab signal-processing modulation

我的问题可能很简单,但我被困在这里已有一段时间了。我试图在Matlab中模拟立体声FM复合基带信号。我正在使用" FM无线电信号的分析和仿真用于被动雷达"来自意大利团体的论文作为我的基础。我实际上能够创建适当的信号到无线电音信号部分。我的问题是其余的,2*pi*k_f和整合。我使用matlab的cumsum()函数作为集成块。一切似乎都很好,但是当我按照论文中的说明使用k_f = 75000时,我的复杂包络信号全部都是平坦的,没有类似于图2中第二张图的三角形。

对我来说,不使用Matlab的fmmod函数就可以做到这一点非常重要。这是我的代码:

clear all
close all
clc

noCh = 1; % number of channels, not important at the moment, just use 1
Fs = 400e3; % sampling frequency
bw_rx = 200e3; % receiver bandwidth (not being used atm)
i_t = 1; % integration time is always 1 second during FM signal generation
[data, Fs_data] = audioread('tool1.mp3'); % music data
t = linspace(0, i_t, Fs*i_t); % time vector
st = zeros(noCh, Fs*i_t);
for k=1:noCh
    l = transpose(data(1e6+1:1e6+Fs_data, 1)); % left channel data
    r = transpose(data(1e6+1:1e6+Fs_data, 2)); % righ channel data

    l = resample(l, Fs*i_t, Fs_data*i_t); % interpolate to Fs for shifting in frequency domain
    r = resample(r, Fs*i_t, Fs_data*i_t); 
    l = l/max(l); % normalize
    r = r/max(r);

    figure
    subplot(2,1,1)

    % message signal
    mt = 0.5*(l+r) + 0.5*(l-r).*cos(2*pi*2*19000*t) + 0.5*cos(2*pi*19000*t);
    mt = mt/max(mt);
    temp = abs(fft(mt))/max(abs(fft(mt)));
    % plot the message signal
    plot(20*log10(fftshift(temp)))
    % integration and multiplication with 2*pi*75000
    mt = 2*pi*75000*cumsum(mt);
    st(noCh, :) = cos(mt) + 1i*sin(mt); % complex envelop stereo FM signal
end
subplot(2,1,2)
% plot the complex envelope signal
plot(20*log10(fftshift(abs(fft(st)))))

0 个答案:

没有答案