Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/30: Рейтинг темы: голосов - 30, средняя оценка - 4.67
1 / 0 / 0
Регистрация: 16.05.2013
Сообщений: 25

Подскажите как в Matlab пропустить через рассчитанный фильтр такой сигнал: 101011001101001?

16.05.2013, 15:03. Показов 6751. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
пишу диплом. сам фильтр(цифровой фнч) удалось рассчитать. пропустить синусоиду для проверки затухания получилось. но теперь необходимо для проверки пропустить этот сигнал 101011001101001. как это сделать? просто вообще не могу понять. если можно подробно напишите, как это сделать(желательно код). могу выложить код самих расчётов фильтра. спасибо огромное всем кто поможет, очень выручите!

Добавлено через 9 минут
я не знаю как подробнее описать проблему, т.к. это мой дебют в матлабе. прошу задавайте вопросы если что-то не написал необходимое. очень нужна помощь.

Добавлено через 12 минут
вообще это нужно для того чтобы увидеть как после прохождения фильтра изменится сигнал. а такая последовательность необходима для осуществления контроля: как ведёт себя сигнал при переходах: из 1 в 0, из 0 в 1, из 00 в 1, из 1 в 00, из 11 в 0 и из 0 в 11. может это тоже пояснит ситуацию.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.05.2013, 15:03
Ответы с готовыми решениями:

Пропустить сигнал через фильтр
Здравствуйте! Имеется сигнал в виде отсчетов 5,4,2,1. Как пропустить его через фильтр: g(n) 10 7 0 0 7 n -2 -1 0 1 2...

Пропустить сигнал через режекторный фильтр
Задали для диплома создать режекторный фильтр и пропустить через него сигнал. Создал фильтр в filterbuilder. А как пропустить сигнал...

На сигнал наложить шум и пропустить все через фильтр Калмана
на сигнал sin(x) наложить шум, и пропустить это все через фильтр Калмана как реализовать все это(код)? а то в хелпе матлаба про Калмана...

27
Эксперт по электронике
 Аватар для R2D2
939 / 839 / 121
Регистрация: 23.11.2012
Сообщений: 2,488
23.05.2013, 10:57
Студворк — интернет-сервис помощи студентам

Не по теме:

Цитата Сообщение от ydav-07 Посмотреть сообщение
добавить ВЧ компоненту
Для меня это термин с каждым годом становится все более растяжимым понятием :) Вот преподаватель по схемотехнике когда то говорил: "Дети, 10 МГц - это уже СВЧ". А преподаватель по СВЧ: "Ну эта система работает на достаточно низких частотах. Низкими я считаю частоты < 10 ГГц"


Насколько ВЧ? И какой амплитуды?
1
1 / 0 / 0
Регистрация: 16.05.2013
Сообщений: 25
23.05.2013, 11:01  [ТС]
Dimka_rtf, у меня у фильтра частота среза 5,4 Мгц, граничная частота полосы пропускания 4 Мгц. значит он должен всё резать после частоты среза.
0
Эксперт по электронике
 Аватар для R2D2
939 / 839 / 121
Регистрация: 23.11.2012
Сообщений: 2,488
23.05.2013, 11:14
Вот:
Кликните здесь для просмотра всего текста
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
close all; clear all; clc;
f_d = 15e7; w_d = 2*pi*f_d; %Частота дискретизации
F_p = 4000000; w_p = 2*pi*F_p; %Частота среза
R_pzad = 0.4; R_szad = 43; %Заданные допуски на ЛАЧХ
F_s = 5400000; w_s = 2*pi*F_s; %Граничная частота
                                     
w_0 = (w_p+w_s)/2; %Частота разрыва (среза) идеального АЧХ
 
delta1 = (10^(0.05*R_pzad - 1))/(10^(0.05*R_pzad + 1));
delta2 = 10^(-0.05*R_szad);
delta = min(delta1,delta2);
R_s = -20*log10(delta);
if R_s <= 21
    alfa = 0;
elseif (R_s > 21)&(R_s <= 50)
    alfa = 0.5842*(R_s-21)^0.4+0.07886*(R_s-21);
elseif R_s > 50
    alfa = 0.1102*(R_s-8.7);
end;
if R_s <= 21
    D = 0.9222;
else
    D = (R_s-7.95)/14.36;
end;
N = ceil(w_d*D/(w_s-w_p)+1);                %Выбор порядка фильтра R=N-1
if mod(N,2) == 0                            %Если N четное прибавляем 1
    N = N+1;
end;
h_imp((N-1)/2+1) = w_0/(f_d*pi);            %Нулевой отсчет БИХ
for n = -(N-1)/2:-1                         %Вычисление фрагмента БИХ
    h_imp((N-1)/2+1+n) = w_0/(f_d*pi)*sin(w_0*n/f_d)*f_d/(w_0*n);
end;
for n = 1:(N-1)/2
    h_imp(n+(N-1)/2+1) = w_0/(f_d*pi)*sin(w_0*n/f_d)*f_d/(w_0*n);
end;
%Построение фрагмента бесконечной импульсной хар-ки
figure('name','Фрагмент бесконечной импульсной х-ки'); 
stem(1:N, h_imp);
grid on;
%Построение импульсной хар-ки реального фильтра
w_n = kaiser(N, alfa);                      
figure('name','Отсчеты функции окна');  
stem(1:N, w_n);
grid on;
ylabel('w(n)');
xlim([0 N+1]);
%Расчет имп. х-ки реального фильтра
for n = 0:N-1                             
    h_n(n+1) = h_imp(n+1)*w_n(n+1);
end;
%Построение импульсной хар-ки реального фильтра
figure('name','Импульсная хар-ка реального фильтра'); 
stem(1:N, h_n);
ylabel('hи(n)');
grid on;
%Построение АЧХ фильтра
figure('name', 'АЧХ фильтра');             
[H, W] = freqz(h_n,[1]);
plot(W*f_d/(2*pi),abs(H),'g');
grid on;
hold on;
%Вычисление БИХ с помощью Matlab-функци
[R_st, W_n_st, alfa_st, ftype] = kaiserord([F_p F_s], [1 0], [delta1 delta2], f_d, 'cell');  
b = fir1(R_st, W_n_st, ftype, kaiser(R_st+1,alfa_st), 'noscale');                         
[H1, W1] = freqz(b, 1); 
%Построение АЧХ фильтра сравнение с ранее полученным результатом
plot(W1*f_d/(2*pi),abs(H1), '--k');
legend('Bez ispolz stand funkcii','S ispolz stand funkcii');
xlabel('f, MHz');
ylabel('Amplitude');
%Построение ЛАЧХ фильтра в dB
figure('name', 'ЛАЧХ фильтра (dB)');       
plot(W*f_d/(2*pi),20*log10(abs(H)), 'b');
hold on;
%построение границы полос пропускания и задержки
plot([F_s, F_s], [-140, -R_s], 'r--');
plot([F_s, max(W*f_d/(2*pi))], [-R_s, -R_s], 'r--');
plot([F_p, F_p], [20, -R_pzad], 'r--');
plot([0, F_p], [-R_pzad, -R_pzad], 'r--');
hold off;
grid on;
xlabel('f, MHz');
ylabel('Amplitude(dB)');
%построение ФЧХ фильтра в градусах
FCH = angle(H);
FCH = unwrap(FCH);   
figure('name', 'ФЧХ фильтра (градус)');    
plot(W*f_d/(2*pi), FCH*180/pi);
grid on;
title('FCH');
xlabel('f, MHz');
ylabel('Fase(gradus)');
%Построение диаграммы нулей
figure('name', 'Диаграмма нулей фильтра');  
zplane(h_n, [1]);
grid on;
xlabel('Real');
ylabel('Imag');
ylim([-2 2]);
%Построение переходной и импульсной х-ки
figure('name', 'Переходная и импульсная характеристики'); 
pereh = filter(h_n, [1], ones(1, 300));
subplot(2,1,1);
stem((0:N-1)./f_d, h_n);
grid on;
title('Impulsnaja');
xlabel('Time(s)');
ylabel('Amplitude');
subplot(2,1,2);
stem((0:length(pereh)-1)./f_d, pereh);
grid on;
title('Perehodnaja');
xlabel('Time(s)');
ylabel('Amplitude');
%Построение реакции фильтра на различные входные сигналы
f1 = 2000000;
f2 = 3800000;
f3 = 6000000;
t_sign = 0:1/f_d:0.000009;
L = length(t_sign);
signal_1 = 10*sin(2*pi*f1*t_sign);
signal_2 = 10*sin(2*pi*f2*t_sign);
signal_3 = 10*sin(2*pi*f3*t_sign);
%--------------------------------------------------------------------------
smp = [1 0 1 0 1 1 0 0 1 1 0 1 0 0 1];
ones_vect = ones(round(length(t_sign)/length(smp)), 1);
sig = ones_vect*smp;
signal_4 = sig(:)';
if length(signal_4)<L
    signal_4(1,end:L) = sig(end);
end
f_nz = 10e6;
noize = 0.5*cos(2*pi*f_nz*t_sign);
signal_5 = signal_4+noize;
%--------------------------------------------------------------------------
vyx1 = filtfilt(h_n, [1], signal_1);
vyx2 = filtfilt(h_n, [1], signal_2);
vyx3 = filtfilt(h_n, [1], signal_3);
%--------------------------------------------------------------------------
vyx4 = filtfilt(h_n, [1], signal_4);
vyx5 = filtfilt(h_n, [1], signal_5);
%--------------------------------------------------------------------------
%% Графики
figure('name', 'Реакция фильтра на различные входные сигналы');
subplot(2,1,1);
plot(t_sign, signal_1, 'r-');
grid on;
title('2 MHz');
subplot(2,1,2);
plot(t_sign, vyx1, 'k-');
grid on;
figure('name', 'Реакция фильтра на различные входные сигналы');
subplot(2,1,1);
plot(t_sign, signal_2, 'r-');
grid on;
title('3,8 MHz');
subplot(2,1,2);
plot(t_sign, vyx2, 'k-');
grid on;
figure('name', 'Реакция фильтра на различные входные сигналы');
subplot(2,1,1);
plot(t_sign, signal_3, 'r-');
grid on;
title('6 MHz');
subplot(2,1,2);
plot(t_sign, vyx3, 'k-');
grid on;
%--------------------------------------------------------------------------
figure('name', 'Реакция фильтра на различные входные сигналы');
subplot(2,1,1);
plot(t_sign, signal_4, 'g-');
grid on;
title('Битовая последовательность');
subplot(2,1,2);
plot(t_sign, vyx4, 'm-');
grid on;
 
figure('name', 'Реакция фильтра на различные входные сигналы');
subplot(2,1,1);
plot(t_sign, signal_5, 'g-');
grid on;
title(['Битовая последовательность+шум (' num2str(f_nz/1e6) ' Мгц)']);
subplot(2,1,2);
plot(t_sign, vyx5, 'm-');
grid on;
%--------------------------------------------------------------------------
[sos,g] = tf2sos(b,[1]);
[r,p,k] = sos2zp(sos);

Извини, несдержался )) Увеличил на порядок частоту дискретизации, что бы графики покрасивше были. Амплитуду шума взял как 0.5*Амплитуду_сигнала. Принято, что при таком соотношении С/Ш еще можно различить где что...

Не по теме:

И можно на "ты". Я такой же студент :victory:

2
1 / 0 / 0
Регистрация: 16.05.2013
Сообщений: 25
23.05.2013, 11:16  [ТС]
Dimka_rtf, как по вашему мнению, у меня сносные расчёты?

Добавлено через 15 секунд
спасибо вам огромное!
0
Эксперт по электронике
 Аватар для R2D2
939 / 839 / 121
Регистрация: 23.11.2012
Сообщений: 2,488
23.05.2013, 11:21
Честно говоря, не силен в расчетах фильтров - поэтому не знаю Но по результатам - вроде ничего так...
Единственное - я бы входные - выходные сигнала строил бы на одном графике (а не друг под другом). Так как то нагляднее.
1
1 / 0 / 0
Регистрация: 16.05.2013
Сообщений: 25
23.05.2013, 11:21  [ТС]
спасибо! значит всё будет хорошо! вы мне очень помогли!
0
23.05.2013, 11:25

Не по теме:

Цитата Сообщение от ydav-07 Посмотреть сообщение
вы мне очень помогли!
Еще чуть-чуть и я буду чувствовать себя пожилым профессором :rofl:

1
1 / 0 / 0
Регистрация: 16.05.2013
Сообщений: 25
23.05.2013, 11:27  [ТС]
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.05.2013, 11:27

Подскажите пожалуйста. Как сформировать сигнал в matlab
Начал изучать matlab и возникли трудности. Необходимо создать математическую модель и отобразить сигнал графически (во временной области).

Как сформировать такой сигнал в матлаб подскажите пожалуйста
только начал изучать матлаб, поэтому возникают трудности

Закодировать звуковую запись, полученный сигнал пропустить через полосовые фильтры
очень нужна ваша помощь. совсем не разбираюсь в программе матлаб. но очень нужно написать программу для диплома. Нужно загрузить в матлаб...

MatLab: сложить графики, один из которых составлен через цикл. цифровой сигнал складываем с аналоговым
Здравствуйте! у меня есть задание по тэц - есть сигнал и к нему нужно просто прибавить помеху. Это цифровой сигнал, он идет...

Как подключить такой фильтр?
Приветствую всех форумчан!купил такой фильтр. http://savepic.org/5565538.jpg http://savepic.org/5548130.jpg По названию...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Новые блоги и статьи
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru