Plot binary sequence of type char (MATLAB)

9 ビュー (過去 30 日間)
high speed
high speed 2022 年 12 月 2 日
コメント済み: high speed 2022 年 12 月 2 日
Dear,
I have this binary sequence '011010001000000001010011' of type char, and I want to plot it to obtain a graph like that for example:
  2 件のコメント
Fifteen12
Fifteen12 2022 年 12 月 2 日
What have you tried so far? Love to help, but not sure what you're confused on!
high speed
high speed 2022 年 12 月 2 日
@John Morris After sampling, quantifying and encoding the original signal, I want just to plot the obtainedd binary sequence

サインインしてコメントする。

採用された回答

Askic V
Askic V 2022 年 12 月 2 日
This is how I would do it:
bin_sq = '011010001000000001010011';
N = length(bin_sq); % nr of characters
pulse_duration = 2; % 2 sec
total_duration = N * pulse_duration;
% Initialize array
pulse_arr = ones(1,N);
% put zeros on appropriate places
pulse_arr(bin_sq == '0') = 0;
dt = 0.01; % choose step size
t = 0:dt:total_duration;
% Initialize output signal
output_sig = zeros(size(t));
for ii = 0:N-1
start_point = ii*pulse_duration;
end_point = (ii+1)*pulse_duration;
output_sig(t>=start_point & t < end_point) = pulse_arr(ii+1);
end
% Plot output signal
plot(t,output_sig, 'LineWidth',2)
  1 件のコメント
high speed
high speed 2022 年 12 月 2 日
@Askic V That's more practical. Thank you

サインインしてコメントする。

その他の回答 (1 件)

Fifteen12
Fifteen12 2022 年 12 月 2 日
編集済み: Fifteen12 2022 年 12 月 2 日
seq = randi(2, [1, 20]) - 1;
y = seq(1);
x = 0;
for i = 1:length(seq)-1
y(end+1) = seq(i);
x(end+1) = i;
if seq(i+1) ~= seq(i)
y(end+1) = seq(i+1);
x(end+1) = i;
end
end
plot(x, y)
axis([0, x(end), -2, 3])

カテゴリ

Help Center および File ExchangeStructures についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by