How to create mono phasic square waves with certain amplitude, pulse width and frequency for a certain time period

4 vues (au cours des 30 derniers jours)
Hi,
I would like to create an output signal for my constant current stimulator. I would like to send square pulses with certain amplitude, pulse width and frequency for a certain time period.
For example: I want to send a pulse train (pulse width = 100µs) for 400ms in 100Hz.
What would be the best approach for this?
Thanks!

Réponse acceptée

Bjorn Gustavsson
Bjorn Gustavsson le 11 Juin 2022
you could use square - for details check the help and documentation of that function.
HTH.
  2 commentaires
Evrim Yilmaz
Evrim Yilmaz le 11 Juin 2022
Thanks, this is the first thing I did. But, I can't set the pulse width with this function.
Evrim Yilmaz
Evrim Yilmaz le 11 Juin 2022
I got it, silly me.
clc
clear all
SR = 10000; % SR: sampling rate, constant
A = 0.5; % A: amplitude, mAmper
F = 100; % F: frequency, Hz
TW = 0.1; % TW: train width, second
PW = 0.0001; % PW: pulse width, second (50µs)
i = 1;
SW(i) = (TW(i) / F(i))- PW(i); % SW: space width (interpulse duration)
CT(i) = PW(i) + SW(i); % CT: cycle time
DC(i) = (PW(i) / CT(i)) *100; % DC: Duty cycle (% of ON) in a cycle
t = 0:1/SR:TW(i);
y = A(i)*((1 + square(pi*F(i)*t,DC(i)))/2);
plot(t,y)
xlim([0 t(1,end)]) % last element in t
ylim([0 A(i)*1.2]);

Connectez-vous pour commenter.

Plus de réponses (0)

Produits


Version

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by