MATLAB - 使用fm demod解码数据

时间:2013-02-07 22:25:53

标签: matlab

我正在尝试提取一个本身具有正弦变化速度的正弦曲线。这种形式大约是罪(a(sin(b * t))),a + b是常数。

这就是我现在正在尝试的,但它并没有像我希望的那样给我一个很好的罪孽图。

Fs = 100; % Sampling rate of signal
Fc = 2*pi; % Carrier frequency
t = [0:(20*(Fs-1))]'/Fs; % Sampling times
s1 = sin(11*sin(t)); % Channel 1, this generates the signal
x = [s1]; 
dev = 50; % Frequency deviation in modulated signal
z = fmdemod(x,Fc,Fs,fm); % Demodulate both channels.
plot(z);

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

  1. 您的代码中存在错误,而不是:

    z = fmdemod(x,Fc,Fs,fm);
    
  2. 你应该:

    z = fmdemod(x,Fc,Fs,dev); 
    

    另外,要查看一个很好的正弦图,您需要绘制s1

    看起来您没有创建正确调制的FM信号,因此您无法使用fmdemod正确解调它。这是一个正确执行的示例:

     Fs = 8000; % Sampling rate of signal
     Fc = 3000; % Carrier frequency
     t = [0:Fs]'/Fs; % Sampling times
     s1 = sin(2*pi*300*t)+2*sin(2*pi*600*t); % Channel 1
     s2 = sin(2*pi*150*t)+2*sin(2*pi*900*t); % Channel 2
     x = [s1,s2]; % Two-channel signal
     dev = 50; % Frequency deviation in modulated signal
     y = fmmod(x,Fc,Fs,dev); % Modulate both channels.
     z = fmdemod(y,Fc,Fs,dev); % Demodulate both channels.
    

    如果您发现thr答案有用,您可以对它们进行投票并接受它们,谢谢。