Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 10.12.2018
Сообщений: 8
1

Оценивание частотно временных параметров сигналов по цифровой записи

10.12.2018, 14:29. Показов 2164. Ответов 19
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет, нужна помощь. Буду благодарен за любую оказанную помощь.
Суть в том, что необходимо написать программу, в которой открывается файл, содержащий цифровую запись сигнала(порядок записи отсчётов в файле: вещественная часть, мнимая часть, вещественная, мнимая и т.д.), и, используя преобразование Фурье, вывести частотно временную панораму в оконной функции.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.12.2018, 14:29
Ответы с готовыми решениями:

Построение временных диаграмм сигналов
проверьте пожалуйста правильно ли я построил временные диаграммы

Цифровой частотный анализ полигармонических сигналов
дан сигнал 36\sin (2\pi 2500t)+35\sin (2\pi 2600t)+0.006\sin (2\pi 4800t)+0.004\sin (2\pi...

Библиотеки С/С++ для цифровой обработки сигналов
Доброго времени суток! Хотел узнать, быть может кто-нибудь знает библиотеку/библиотеки С/С++ для...

Библиотека с функциями математической и цифровой обработки сигналов
Добрый день! Стоит задача программирования предобработки звукового сигнала. Сейчас пользуемся...

19
1282 / 913 / 446
Регистрация: 21.10.2012
Сообщений: 2,589
10.12.2018, 15:51 2
TO5HQ4A, прикрепили бы сигнал для начала
0
533 / 438 / 47
Регистрация: 17.07.2013
Сообщений: 2,236
10.12.2018, 17:49 3
Цитата Сообщение от TO5HQ4A Посмотреть сообщение
сигнала(порядок записи отсчётов в файле: вещественная часть, мнимая часть
У сигнала мнимая часть???
0
164 / 134 / 61
Регистрация: 16.05.2015
Сообщений: 372
10.12.2018, 18:17 4
Nick07, Очевидно, речь о т.н. квадратурных сигналах. Например, результат применения преобразования Гильберта к вещественному сигналу.
0
0 / 0 / 0
Регистрация: 10.12.2018
Сообщений: 8
10.12.2018, 18:21  [ТС] 5
Одна из проблем, в исходных данных не было сигнала
0
164 / 134 / 61
Регистрация: 16.05.2015
Сообщений: 372
10.12.2018, 20:18 6
TO5HQ4A, А что конкретно у Вас вызывает затруднения?
0
0 / 0 / 0
Регистрация: 10.12.2018
Сообщений: 8
11.12.2018, 07:44  [ТС] 7
Основная проблема в том, как рассчитать этии частотно временных параметры , и как вывести их в оконной функции
0
533 / 438 / 47
Регистрация: 17.07.2013
Сообщений: 2,236
11.12.2018, 08:45 8
Цитата Сообщение от TO5HQ4A Посмотреть сообщение
этии частотно временных параметры
Вы читаете/понимаете, что пишите?
На уровне разгадывания Ваших ребусов см:
Periodogram power spectral density estimate
0
164 / 134 / 61
Регистрация: 16.05.2015
Сообщений: 372
11.12.2018, 15:51 9
Цитата Сообщение от TO5HQ4A Посмотреть сообщение
частотно временную панораму
Цитата Сообщение от TO5HQ4A Посмотреть сообщение
частотно временных параметры
Вы начали путаться в показаниях
Так панораму или параметры?
0
0 / 0 / 0
Регистрация: 10.12.2018
Сообщений: 8
11.12.2018, 18:35  [ТС] 10
Может я не правильно понимаю, но в оконной функции должна быть представлена панорама, отображающая эти параметры (частотно временные).
Или такое в принципе не возможно ?
0
164 / 134 / 61
Регистрация: 16.05.2015
Сообщений: 372
11.12.2018, 18:54 11
Цитата Сообщение от TO5HQ4A Посмотреть сообщение
Или такое в принципе не возможно ?
Все зависит от степени развития фантазии

Такое понятие, как частотно-временная панорама действительно существует. Она описывает изменение частотного состава сигнала во времени. Суть ее построения, в двух словах, такова:
1) сигнал, длительностью, допустим, 100с разбивается на интервалы (окна) равной длины, допустим 1с.
2) с помощью применения преобразования Фурье к каждому интервалу получают амплитудный спектр (каждого интервала)
3) тем или иным способом визуализируют полученное семейство спектров. (При этом обычно по оси X откладывают время, а по оси Y частоту.)
Примерно как на рисунке. Здесь исходный сигнал представляет собой сумму трех синусоид различной частоты. Амплитуда одной - возрастает с течением времени, амплитуда второй - убывает, амплитуда третьей - остается неизменной. (желтые полоски)
Миниатюры
Оценивание частотно временных параметров сигналов по цифровой записи  
1
АлександрКом
11.12.2018, 19:04
  #12

Не по теме:

Что-то вроде waterfall spectrum

0
164 / 134 / 61
Регистрация: 16.05.2015
Сообщений: 372
11.12.2018, 19:38 13
АлександрКом, Да, можно и так отобразить. Все зависит от глубины внутреннего мира отображающего
Миниатюры
Оценивание частотно временных параметров сигналов по цифровой записи  
0
0 / 0 / 0
Регистрация: 10.12.2018
Сообщений: 8
11.12.2018, 20:05  [ТС] 14
Есть варианты как воплотить в Matlab'e?
0
164 / 134 / 61
Регистрация: 16.05.2015
Сообщений: 372
11.12.2018, 20:25 15
Цитата Сообщение от TO5HQ4A Посмотреть сообщение
Есть варианты как воплотить в Matlab'e?
А Вы думаете я обе картинки в Photoshop нарисовал? Вы смотрели мультфильм "Каникулы в Простоквашино"? Там почтальон Печкин говорил так: "Я вам посылку принес. Только я вам ее не отдам. Потому, что у вас документов нет." Можете считать меня злым , но до тех пор, пока я не увижу Ваших попыток - помощь только советом.
0
0 / 0 / 0
Регистрация: 10.12.2018
Сообщений: 8
11.12.2018, 20:50  [ТС] 16
ida2, неплохая политика, но вот что я смог сделать, это хоть похоже?)
Вложения
Тип файла: 7z maybe.7z (825 байт, 2 просмотров)
0
164 / 134 / 61
Регистрация: 16.05.2015
Сообщений: 372
11.12.2018, 21:57 17
Часть кода обеспечивающая считывания из файла и формирования массива комплексных значений
Matlab M
1
2
3
4
5
6
7
8
9
10
11
clear all
%количество отсчетов
N=350;
%выбор файла 
[filename catal]=uigetfile('*.*','открыть')
filename =[catal filename]
fid=fopen(filename,'r'); 
data = fread(fid,N,'int');
fclose(fid);
%формируем комплексные отсчеты сигнала
datac = data(1:2:end)+1i*data(2:2:end);
вполне пригодна. За исключением одного НО. Почему считывается только 350/2 значений, а не весь файл?

Дальше хуже. Все начинается с этого места
Matlab M
1
2
% частотный детектор
datac = unwrap(diff(angle(datac)));
Первая производная фазы, зачем? В задании же не сказано, чтобы как-то глумиться над самим сигналом, а вы после данной строки безвозвратно утратили добрую половину информации содержащейся в самом сигнале.

Что касается основной части (то, что внутри цикла), то здесь вычисляется значение автокорреляционной функции (не стал глубоко разбираться, чего и как). По ней конечно можно, в принципе, судить о частотном составе сигнала, но все же это не есть полноценный спектр.

Попытайтесь сделать следующее:
1) сформируйте нормальный тестовый файл со значениями сигнала, чтобы иметь возможность четко оценивать правильность результатов.
2) считывайте весь файл.
3) после считывания разбейте массив на N отдельных интервалов (например с помощью функции buffer()), так чтобы они располагались по столбцам матрицы
4) выполните преобразование Фурье для каждого столбца комплексных значений за один вызов функции fft()
5) сформируйте односторонний амплитудный спектр из спектра каждого интервала, и выполните их нормирование, как показано в help-е на функцию fft()
6) отобразите семейство полученных спектров с помощью функции image() (первый рисунок) или функции waterfall() (второй рисунок)

Файлом, с которым экспериментировал я, могу поделиться. В нем 10000 значений. Все мнимые части равны нулю (пусть это Вас не смущает, числа от этого не перестают быть комплексными, а для предсказуемости результата это очень даже..., когда заработает поменяете).
Вложения
Тип файла: zip 1_bin.zip (1.6 Кб, 7 просмотров)
0
0 / 0 / 0
Регистрация: 10.12.2018
Сообщений: 8
11.12.2018, 23:12  [ТС] 18
ida2, программирование явно не мое :р
как то так получилось
Вложения
Тип файла: 7z maybe_2.7z (690 байт, 2 просмотров)
0
164 / 134 / 61
Регистрация: 16.05.2015
Сообщений: 372
11.12.2018, 23:49 19
Лучший ответ Сообщение было отмечено TO5HQ4A как решение

Решение

TO5HQ4A, Ну, это уже в правильном направлении. Вот мой вариант:

Кликните здесь для просмотра всего текста
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
clear all;
nMax = 10000; % количество значений в записи
DL = 100;   % длина интервала (она же - частота дискретизации (для простоты - интервалы по 1 сек.))
 
%Откройте если нужно повторно сформировать файл исходных значений
%{ 
n = 1:nMax;
X = sin(0.1 * n) .* n ./ nMax + sin(n) .* (nMax-n) ./ nMax + sin(10 * n);
plot(n, X);
XX = zeros(1, 2*length(X));
XX(1:2:end) = X;
 
fileID = fopen('1.bin', 'w');
fwrite(fileID, XX, 'int16');
fclose(fileID);
%}
 
fileID = fopen('1.bin');
A = fread(fileID,[2,inf],'int16');  % считывание даействительной и мнимой частей в два столбца
fclose(fileID);
 
C = complex(A(1,:), A(2,:));    % формирование массива комплексных значений
L = length(C);
N = fix(L/DL);  % количество интервалов
B = buffer(C, N);   % формирование матрицы интервалов
NF = 2^nextpow2(DL);    % длина FFT
F = fft(B, NF); % собственно FFT матрицы интервалов
P2 = abs(F./NF);    % формирование одностороннегоспектра и нормировка
P1 = P2(1:NF/2+1, :);
P1(2:end-1, :) = 2*P1(2:end-1, :);
 
FF = DL*(0:(NF/2))/NF;  % шкала оси частот
TT = 1:N;   % шкала оси времени
 
% отображение вариант 1
figure(1);
image(TT, FF, P1, 'CDataMapping','scaled');
c = colorbar;
c.Label.String = 'SPD';%axis square;
xlabel('Time, s');
ylabel('Frequency, Hz');
 
% отображение вариант 2
figure(2)
waterfall(TT, FF, P1);
xlabel('Time, s');
ylabel('Frequency, Hz');
zlabel('SPD');

Только не сдавайте сразу, разберитесь сперва.
1
0 / 0 / 0
Регистрация: 10.12.2018
Сообщений: 8
12.12.2018, 00:15  [ТС] 20
ida2, спасибо большое, надеюсь это действительно мне поможет)
0
12.12.2018, 00:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.12.2018, 00:15
Помогаю со студенческими работами здесь

сохранение временных параметров работы программы...
есть затея сделать так что бы выбранные пользователем действия сохранялись при следующем открытии...

програмулина для определения временных параметров сети
Мне необходимо написать программу, для измерения временных параметров сети например: ...

Расчет временных параметров для сетевого графика в Mathcad
Доброе время суток! Может кто знает, можно ли в Mathcad как-то реализовать расчеты для сетевого...

Записи отсортировать методом цифровой сортировки
Записи отсортировать методом цифровой сортировки, а получающиеся группы записей, количество которых...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru