質問編集履歴
2
誤字
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
MATLABで音源
|
1
|
+
MATLABで音源のフィルタを作成
|
test
CHANGED
@@ -1,14 +1,6 @@
|
|
1
1
|
###前提・実現したいこと
|
2
2
|
|
3
3
|
MATLABで音源に対するバンドパスフィルタを作成しようとしています。
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
ローパスフィルタのコード例はあるのですが、バンドパスフィルタを作成するには、ローパスフィルタとハイパスフィルタを組み合わせる必要があり、コードのどの部分を変更したら良いかわからないため、MATLAB内のアプリ「フィルターデザイナー」の使用も検討しています。
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
3kHzから12kHzの通過域を設定したバンドパスフィルタを作成したいです。
|
12
4
|
|
13
5
|
|
14
6
|
|
@@ -16,102 +8,12 @@
|
|
16
8
|
|
17
9
|
###発生している問題・エラーメッセージ
|
18
10
|
|
19
|
-
1, ローパスフィルタのコード例をどのように改変
|
11
|
+
1, ローパスフィルタのコード例をどのように改変するのか
|
20
|
-
|
21
|
-
|
22
12
|
|
23
13
|
```MATLAB
|
24
14
|
|
25
15
|
frameLength = 4000;
|
26
16
|
|
27
|
-
N = 100; % FIR フィルタ
|
28
|
-
|
29
|
-
Fp = 1e3; % 1 kHz 通過域端周波数
|
30
|
-
|
31
|
-
Rp = 0.00057565; % リップル 0.01 dB
|
32
|
-
|
33
|
-
Rst = 1e-4; % Corresponds to 80 dB 阻止帯域 衰弱
|
34
|
-
|
35
|
-
Fs = 48000;
|
36
17
|
|
37
18
|
|
38
|
-
|
39
|
-
% FIR フィルターデザイン
|
40
|
-
|
41
|
-
eqnum = firceqrip(N,Fp/(Fs/2),[Rp Rst],'passedge'); % eqnum = vec of coeffs
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
% フィルタ作成
|
46
|
-
|
47
|
-
lowpassFIR = dsp.FIRFilter('Numerator', eqnum);
|
48
|
-
|
49
|
-
% フィルタの特徴を表示
|
50
|
-
|
51
|
-
fvtool(lowpassFIR, 'Fs', Fs, 'Color', 'Blue');
|
52
|
-
|
53
|
-
% 音源ファイルの読み込み
|
54
|
-
|
55
|
-
fileReader = dsp.AudioFileReader(...
|
56
|
-
|
57
|
-
'harunoogawa.mp3',...
|
58
|
-
|
59
|
-
'SamplesPerFrame',frameLength);
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
deviceWriter = audioDeviceWriter(...
|
64
|
-
|
65
|
-
'SampleRate',fileReader.SampleRate);
|
66
|
-
|
67
|
-
scope = dsp.SpectrumAnalyzer;
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
while ~isDone(fileReader)
|
72
|
-
|
73
|
-
% acquire frame lenth audio stream
|
74
|
-
|
75
|
-
signal = fileReader();
|
76
|
-
|
77
|
-
% ローパスフィルタ適用
|
78
|
-
|
79
|
-
yy = lowpassFIR(signal);
|
80
|
-
|
81
|
-
deviceWriter(yy);
|
82
|
-
|
83
|
-
% 表示
|
84
|
-
|
85
|
-
scope([signal,yy]);
|
86
|
-
|
87
|
-
end
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
release(fileReader);
|
92
|
-
|
93
|
-
release(deviceWriter);
|
94
|
-
|
95
|
-
release(scope);
|
96
|
-
|
97
19
|
```
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
2, MATLAB内のアプリ「フィルターデザイナー」の設定について分からない。
|
106
|
-
|
107
|
-
![フィルターデザイナーで応答タイプを「バンドパス」にしたもの](e963448d553ca8b723cbe1d4b88b5276.png)
|
108
|
-
|
109
|
-
デフォルトの設定から
|
110
|
-
|
111
|
-
応答タイプを「バンドパス」にすると、
|
112
|
-
|
113
|
-
周波数仕様の欄が4つ出てくるのですが、
|
114
|
-
|
115
|
-
Fstop1,Fpass1とFstop2,Fpass2の違いが分からず、
|
116
|
-
|
117
|
-
3kHzと12kHzをどこに記入すればいいかわかりません。
|
1
誤字訂正
test
CHANGED
File without changes
|
test
CHANGED
@@ -115,15 +115,3 @@
|
|
115
115
|
Fstop1,Fpass1とFstop2,Fpass2の違いが分からず、
|
116
116
|
|
117
117
|
3kHzと12kHzをどこに記入すればいいかわかりません。
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
###試したこと
|
122
|
-
|
123
|
-
課題に対してアプローチしたことを記載してください
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
###補足情報(言語/FW/ツール等のバージョンなど)
|
128
|
-
|
129
|
-
より詳細な情報
|