I am trying to generate a sine wave with a frequency up to 1MHz, my code below can work for a frequency up to 300kHz, for frequency above no wave is generated, can someone help please? here is my code and screeshot.
sig_amp = 2.8; %amplitude
fs = 1e+6; %signal frequency Hz
sampleRate = 1e+6;
numSamplesPerCycle = floor(sampleRate/(fs));
T = 1/(fs); %sampling period
timestep = T/numSamplesPerCycle;
t = (0 : timestep : 5-timestep)';
x = sig_amp*sin(2*pi*fs*t)';
plot(t,x,'.-');
s.queueOutputData(x');
xlabel('temps (s)');
ylabel('Tension de sortie (V)');
title('Signal versus Time');
grid on
zoom xon;
s.ScansQueued

 Respuesta aceptada

It is my understanding that you are trying to plot a sine wave with a frequency up to 1MHz.
According to the Nyquist–Shannon sampling theorem, the sample rate must be at least twice the bandwidth of the signal to avoid aliasing, a type of distortion that occurs when the sample rate is too low.
Here, in the following implementation, I have increased the sampling rate for better resolution.
sig_amp = 2.8; %amplitude
fs = 1*1000*1000; %signal frequency Hz
sampleRate = 4*1000*1000;
numSamplesPerCycle = floor(sampleRate/(fs));
T = 1/(fs); %sampling period
timestep = T/numSamplesPerCycle;
t = (0 : timestep : 5-timestep)';
x = sig_amp*sin(2*pi*fs*t)';
plot(t,x,'.-');
xlabel('temps (s)');
ylabel('Tension de sortie (V)');
title('Signal versus Time');
grid on

3 comentarios

Alhassane
Alhassane el 5 de Dic. de 2024
Hello Subhajyoti,
thank you for your answer. I am not really trying to plot the signal, i want to generate sine wave for an analogue output device and it is limited to 1MHz per channel, i can't increase the sample rate anymore. According to the Nyquist–Shannon sampling theorem, the problem gonna be my device, right ?
PS: i do have a correct sine wave up to 400kHz, which is twice the device sampling rate.
Subhajyoti
Subhajyoti el 5 de Dic. de 2024
Yes, you are correct.
Alhassane
Alhassane el 5 de Dic. de 2024
Thanks.

Iniciar sesión para comentar.

Más respuestas (0)

Productos

Versión

R2023a

Preguntada:

el 5 de Dic. de 2024

Comentada:

el 5 de Dic. de 2024

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by