[협상의 기술 과제]A815086 노진선안녕하십니까? OOO대통령후보입니다. 저희가 제작한 많은 포스터와 스티커에 작가님의 사진이 들어가 저작권 위반이 된 것으로 알고 있습니다. 이에 관하여 정말 죄송하고 사과드립니다. 다만 한 가지 부탁드릴 것이 있습니다. 현재 저희는 선거 유세기간을 고려해볼 때 이미 인쇄된 포스터와 스티커를 다시 인쇄할 수가 없습니다. 이러한 상황을 넓은 아량으로 이해해주시면 감사하겠습니다. 그래서 저희는 선거 포스터와 스티커에 들어간 사진의 저작권에 대해 협상을 진행하고 싶습니다. 저희가 제안하는 바는 사진의 저작권료를 지불하는 대신 작가님의 사진전을 열어드리고 싶습니다. 선거의 결과와 관계없이 선거가 끝나고 작가님이 원하시는 시기에 사진전을 열어드리겠습니다. 모든 사진전의 비용을 지불할 것이며, 제가 직접 사진업계의 인사들을 초대하여 방문하겠습니다. 그리하여 작가님에게 작게나마 사진업계의 인사들과 안면을 틀 수 있는 더 나아가 평가가 좋다면 일자리까지 얻을 수 있는 작은 기회를 제공해드리고 싶습니다. 일자리를 100% 확신을 드리진 못하지만 작가님에게 좋은 기회라고 생각합니다. 저희의 제안을 깊이 생각해보시고 일정 확정된다면 저희가 찾아뵙도록 하겠습니다. 시간은 일주일 뒤인 다음 주 목요일 또는 금요일 오후 6시에 하였으면 좋겠습니다. 그러면 답장 기다리겠습니다.
모방광고 및 표절광고에 대한 규제는 필수적이다.OCU광고와카피 수강생 노진선모방광고와 표절광고는 규제되어야 한다.현재 광고의 세계는 경쟁의 세계다. 하루에도 무수히 많은 광고들이 만들어진다. 그리고 광고를 만드는 일이 무에서 유를 창조해내는 일이라 굉장히 어려운 일이라고 생각한다. 이러한 세계 속에서 살아남으려면 자신만의 독특한 광고를 만들어야 한다. 분명 이 치열한 광고의 세계에서도 살아남는 사람이 있다. 그런데 다른 사람이 잘 만들어낸 광고를 버젓이 모방 또는 표절하여 사용한다면 즉, 광고 한 작품이라도 재산에 포함되기 때문에 그 재산을 이용하거나 도용하여 이득을 취한다면 분명 범법행위라고 할 수 있다. 물론 어느 정도의 동기부여나 아이템 또는 모티브를 따오거나 감명 받을 수는 있지만 도가 넘어서는 모방 및 표절은 광고계의 발전에 저해요인이 될 수 있다. 광고계의 발전을 위해서는 규제가 필수적이라고 생각합니다.그러나 토론의 주제로 언급되었듯이 모방과 표절, 그 정도의 차이가 명확하지 않아서 처벌을 구분하기가 어렵다고 한다면 그 사항에 대한 것부터 방안을 강구해야 할 것입니다. 이때 아무리 규제가 필수적이라고 말했다고 할지라도 규제의 정도가 심하게 되면 광고계 발전의 저해요인을 제거하기 위해 마련한 법률이 오히려 광고계의 자유와 발전을 막을 수 있을 것이라 생각합니다. 결과적으로 ‘적당히’가 가장 어렵지만 ‘적당한 선에서 규제를 해야만 하는 것이 맞다’고 생각합니다.현재 광고 중에서도 많은 부분을 모방광고와 표절광고가 차지하고 있다고 합니다. 굉장히 많은 광고 나와 있는 상황이고, 나왔었기 때문에 모방광고나 표절광고가 없을 순 없다고 생각합니다. 이러한 문제에 대하여 좋은 본보기가 될 수 있는 분야를 생각해보겠습니다. 저작권문제가 일찍이 벌어졌던 음반시장을 예로 들어보겠습니다. 음반시장에서도 음악 자체가 창의성을 필요로 하는 분야이기 때문에 지금 논하고 있는 광고에도 좋은 본보기가 될 수 있다고 생각합니다. 음악도 일찍이 이러한 논란이 있었을 것입니다. 그러나 현재에는 원곡자와 함께 Featuring 작업을 하거나 Remake 곡 작업 등등 여러 합법적인 방법(개런티를 지급하는 등)으로 원곡을 빌려 쓰거나 원곡을 이용해서 곡을 만드는 경우들이 많아졌습니다다. 따라서 비슷한 분야인 광고계에서도 정당하고 합법적인 방법으로 모방이나 표절을 하여서 더 나은 광고를 제작한다면 광고의 원작자와 제작자들에게도 좋은 기회가 될 수 있고 광고계의 더 나은 발전을 도모할 수 있을 것이다. 정치적인 색을 떠나 이런 것이 진정한 창조경제이다. 기존 시장에도 활력을 불어넣을 수 있고 합법적이고 정당한 방법으로 이용하여 기존의 작품들로 더 좋은 결과를 불러올 수 있을 것 같습니다.
1. 마이크로프로세서 8051 관련이론1. 80514Kbyte 용량의 프로그램을 저장할 수 있는 ROM과 128byte의 데이터를 저장할수 있는 RAM이 내장되어 있으며 클럭 발진기도 내부에 적재되어 있다. 64kbyte의 프로그램 메모리 어드레스 영역과 64Kbyte의 데이터 메모리 어드레스 영역을 외부에 할당하여 내부에서 부족한 메모리 영역을 확장할 수도 있다.32(8bit 단위로 4 그룹)개의 양방향 입출력 포트로 컨트롤러 내부와 외부의 데이터를 주고받을 수 있으며 4개의 모드로 사용 가능한 2개의 16bit 타이머/카운터가 제공되어 I/O 확장모드나 UART모드를 선택할 수 있는 시리얼 포트가 있으며 우선 순위를 설정할 수 있는 5개의 인터럽트도 있다. 또한 다양한 부울(Boolean)명령이 제공되어 강력한 연산능력을 갖추었다.2. 8051 계열의 핀 배치1) Vcc(40): 전원을 인가하기 위한 핀으로 전압 +5V를 걸어 준다.2) Vss(20): 접지를 위한 GND핀이다.3) PORT0(32~39): 8개의 핀들로 구성된 8bit 오픈 드레인 양방향 입출력 단자로서 단자의 출 력 구동 능력은 각 핀마다 8개의 LS TTL IC의 입력을 구동시킬 수 있다. 부동 상태에서 1을 출력하고 입력을 받아들일 때는 고 임피던스가 되며 범용의 입출력단자로 사용할 수 있다. 그러나, 외부에 접속한 ROM이나 RAM과 데이터 전송할 때 하위 어드레스 버스와 데이터 버스로 사용된다. EPROM 형태의 칩인 경우 EPROM에 프로그램을 쓰거나 읽을 때에는 데이터 버스로 사용되며 이때는 외부에 풀업 상태를 만들어 주어야만 한다.4) PORT1(1~8): 내부에 풀업되어 있는 8bit 양방향 입출력 단자들로 사용되며 출력 단자로 사용할 때 출력 구동 능력은 LS TTL IC 4개의 입력을 구동 시킬 수 있다. EPROM 형태의 칩인 경우 EPROM에 프로그램을 쓰거나 읽을 때에는 하위 어드레스 버스(A0~A7)로 사용된다.5) PORT2(21~28): 내부 풀업을 갖는 8부 상세도는 (그림 1-4)와 같다.2. 마이크로프로세서 8051의 구조 및 특징- 4KB 의 프로그램 메모리 저장( 프로그램 메모리에 명령이 기억되어서 수행됨)- 4쌍의 8개의 레지스터가 존재( R0 ~ R7 )- 레지스터를 포함한 128바이트의 RAM을 내장- 그중 128 비트는 비트어드레스 영역 : 불 대수 (Boolean)대수처리 명령어(비트단위로 처리)- 4개의 8bit 입출력 포트 (Port0 ~ Port3)- 2개의 16비트 타이머 카운트 내장- 1개의 시리얼 포트, 5개의 인터럽트 내장- 최대 64KB의 프로그램 메모리와 데이터 메모리ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ타이머/카운터의 동작 모드 중류8051 마이크로 콘트롤러의 타이머 0, 1 인터럽트 제어는 IE, IP, TMOD, TCON, TH1, TL1, TH0, TL0을 이용하여 이중에서 TMOD로 타이머/카운터의 동작형태를 제어할 수 있다.타이머/카운터의 동작 형태는 크게 4가지이며 모드 0~3으로 불려진다.? 타이머/카운터 모드 0 : 8Bit 타이머/카운터(32분주 프리스케일러)? 타이머/카운터 모드 1 : 16Bit 타이머/카운터? 타이머/카운터 모드 2 : 8Bit 타이머/카운터(시정수의 Auto Reload 기능)? 타이머/카운터 모드 3 : 독립된 2개의 8Bit 타이머/카운터내부의 타이머 기능으로 사용할 때에는 어느 모드를 사용하여도 시스템 클락을 12분주한 클락 소스(1 머신 사이클, 1 Machine Cycle)를 계주하고 주기적으로 인터럽트를 발생한다.시스템 클락의 주파수를 11.0592MHz로 사용시 1머신 사이클의 주기는 다음과 같이 계산이 된다.1 Machine Cycle’s period= 1/(12분주의 주파수)= 1/{(11.0592*10^6)/12} = 12/(11.0592*10^6)(Sec/Cycle)=1.085 (μSec/Cycle)만일, 16Bit의 타이머(0000H~0FFFF의 머신사이클 계수)일 경우는 최대 완료 후에 시정수를 수동으로 써 줄 필요가 없고 미리 설정된 시정수 값이 자동적으로 기록이 되어지는 점이 특징이다. 특히 타이머1의 모드 2는 일반적으로 직렬 송수진시 전송속도를 결정해 주는 보레이트 발생기로서 활용이 된다.타이머/카운터 모드 2의 구조는 그림 4.3 과 같다타이머/카운터 모드 2의 특징은 다음과 같다.? 타이머/카운터 0,1의 초기 시작값을 각각 8비트의 TH0, TH1 에 기록하면 자동적으로 8비트 타이머/카운터 레지스터 TL0, TL1에 초기 시작값이 복사가 된다. 머신 사이클 클락이나 외부 입력 펄스를 계수한 후 TL0, TL1의 값이 1씩 증가되는 Up Counter이다.? 8비트 타이머/카운터 레지스터 TL0, TL1이 각각 0FFH(255)에서 00H(0)으로 바뀌면 (Timer/Counter 0, 1의 Overflow 발생) TCON 레지스터의 TF0, TF1의 인터럽트 플래그가 자동적으로 ‘1’이 된다. 만일, 타이머/카운터 0,1의 인터럽트가 인에이블이 되어있으면 TF0, TF1이 ‘1’로 될 경우 CPU에게 인터럽트를 요청하고 인터럽트 벡터테이블에 의하여 인터럽트 서비스루틴을 실행한다. 단, TF0, TF1은 인터럽트 서비스루틴으로 들어갈 때 자동적으로 ‘0’이 되고 TH0, TH1에 저장한 초기 시작 값이 자동적으로 각각 TL0, TL1에 복사가 된다. (시정수의 Auto Reload 기능)타이머/카운터 0, 1의 모드 3은 타이머/카운터 0과 1의 동작 형태가 다르며 동시에 3개의 타이머/카운터로서 실행이 가능하고 구조는 그림 4.4과 같다. 타이머/카운터 모드3의 중요한 특징을 요약하면 다음과 같다.? 타이머/카운터 0은 상위 8비트 타이머 레지스터 TH0와 하위 8비트 타이머 레지스터 TL0가 독립된 2개의 8비트 타이머/카운터로서 동작한다. 하위 8비트 TL0은 타이머/카운터로서 동작을 하고 인터럽트 오버플로 플래그는 TF0를 이용한다. 상위 8비트 TH0 는 타이머로서만 동작이 가능하고 인터럽트 오버플로 플래그는 Set_save = _p3^3; // Clock_sfrbit Set_hour = _p3^4; // Clock_sfrbit Set_minute = _p3^5; // Clock//_sfrbit Timer_start = _p3^4; // Timer / Stop Watch_sfrbit Timer_stop = _p3^5; // Timer / Stop Watch//_sfrbit Sig_z = _p3^3; // Quadrature Counter Clear_sfrbit Sig_a = _p3^4; // Quadrature Counter A Input_sfrbit Sig_b = _p3^5; // Quadrature Counter B Input//_sfrbit pulse_in = _p3^2; // Pulse Counter Input INT0 Pin_sfrbit direction = _p3^4; // Pulse Counter Direction_sfrbit clear = _p3^5; // Pulse Counter Clear//_sfrbit Buzer = _p3^6; // Clock / Timer_sfrbit Minus = _p3^7; // Quadrature Counter / Pulse Counter/////////////////////////////////////////////////////////////unsigned char iclock; // Clock / Timerunsigned char cent; // Clock / Timer//unsigned char previous_state; // Quadrature Counterint counter, qabcounter; // Quadrature Counter / Pulse Counter//_bit timer_run; // Timer_bit move_enable; // Quadrature Counter / Pulse Counter/////////////////////////////////////////////////////////r++; break; // 증가case QS2: counter--; break; // 감소case QS4: counter--; break; // 감소case QS7: counter++; break; // 증가case QSD: counter--; break; // 감소case QSE: counter++; break; // 증가case QS8: counter++; break; // 증가case QSB: counter--; break; // 감소}if (Sig_z == 0) {counter = 0;}if (move_enable) {qabcounter = counter;}}/////////////////////////////////////////////////////////////void fnd_display(unsigned char a, unsigned char b, unsigned char c) {/************************************************************ FND 1 2 3 4 5 6 ** +---+ +---+ +---+ +---+ +---+ +---+ ** | | | | | | | | | | | | ** +---+ +---+ +---+ +---+ +---+ +---+ ** | | | | | | | | | | | | ** +---+ +---+ +---+ +---+ +---+ +---+ ** a b c ** ** 8 비트 무부호 정수 a,b,c 를 입력으로 하여 a 는 FND1, ** FND2 b 는 FND3, FND4 그리고 c 는 FND5, FND6 에 ** 숫자를 표시합니다. a,b,c 는 0 ~ 99 까지의 범위 입니다. ** ************************************************************/unsigned char u,v,m,t,x,y,z;u = a / 10; // FND 6 Port2v = a % 10; // FND 5u = u < 4 ;x = u | v;u = 0 |
1. 목소리 신호 얻기 ( 모음 ‘아’, Fs=9000 [Hz] 그래프 )? 낮은 “ 아 ” 에 대한 Plot 그래프.? 높은 “ 아 ” 에 대한 Plot 그래프.? Matlab Command (Screen Shot.)2. 낮은 “아” 와 높은 “아” 2~ 3 주기 Plot Graph? 주의 : Plot 한 범위가 다름.3. 주기구하는 방법 고안해보기.제가 생각한 주기 구하는 방법에는 두 가지가 있습니다.Ⅰ. 실제 데이터 값을 알아내서 직접 주기를 계산 하는 방법이 있다.Ⅱ. Sampling Frequency를 주기대로 Sampling 한다면, ZERO GRAPH 나 또는 일자 형태의 그래프가 그려질 것이다. 그렇게 Frequency를 찾을 수 있다.일단은 두 방법 중에 Ⅰ.번 방법인 가능한 정확도를 높이기 위해서 Matlab Tool 중에 실제 Data 값을 읽어내는 Tool인 Data Cursor를 사용하여 데이터 값을 읽어내고 계산의 편의를 위해 엑셀에 넣어서 계산 해보겠습니다.두 번째 방법(Ⅱ.)은 추가사항으로 첨부하겠습니다.Ⅰ. 주기를 구하기 위해서는 실제 데이터 값을 알고 직접 계산 하는 방법.보시다시피 실제 파형의 모습을 알고, 주기적으로 나타나는 함수 값을 읽어내어 엑셀로 정리계산 해보았습니다.낮은 소리 “아”의 주기 T1= 0.009 [sec] , F1=111.11 [Hz]높은 소리 “아”의 주기 T2= 0.0066 [sec] , F2 = 151.51[Hz]4. 두 신호의 Frequency와 Period 비교그랬더니 낮은 “아”의 경우에는 T1= 0.009 [sec] 가 나왔고, 높은 “아”의 경우에는 T2= 0.0066 [sec] 가 나왔습니다. T1 보다 T2가 작은 것을 알 수 있고, 주기가 작은 값일수록 진동수는 높아지기 때문에 F1 < F2입니다.결국 높은 소리 일수록 주기가 짧고, 진동수가 높아진다는 것을 알 수 있게 되었습니다. 그러나 높낮이만 다른 같은 발음은 거의 동일한 파형을 갖게 된다는 것을 알 수 있었습니다.< 참고 사항 - 주기 구하는 방법 Ⅱ. >Ⅱ. Sampling Frequency를 주기대로 Sampling 해서 그래프 파형으로 주기 구하기.주기를 구하는 방법을 고민해보았다. 며칠을 통학하면서 계속 이 고민했다. 그렇게 고민의 고민을 거듭하다 가이전 과제를 통해서 아이디어를 떠올릴 수 있었다. 바로 전에 했던 과제 중에서 별거 아닐 거라고 생각했지만, 중요한 사실을 포함하고 있는 그래프가 있다. 모두 zero로 나왔던 오른쪽 이 그래프. Fs를 주기의 배수로 잡아서 원래의 파형을 알아볼 수 없도록 나왔던 이 그래프가 쓸모없을 것 같았지만 주기를 모르는 파형의 주기를 아는데 해법을 제시해줄 것 같았다.바로 실행에 옮겼다.그러나 원래 입력된 s=wavrecord(Duration*Fs,Fs,1);에서 원하는 대로 Sampling Frequency를 설정하여 Plot 하는 명령어를 적절하게 찾지 못하였기 때문에 처음부터 녹음할 때 Fs 각기 다르게 설정한 후에 시작해보았습니다. 결과는 다음과 같습니다.3 X 3 Subplot 하였다. 낮은 “아”를 기준으로 해보았습니다.Fs= 9000, 108, 109, 110, 111, 112, 113, 114, 115를 기준으로 Sampling 해보았습니다.이 방법을 하면서 실패를 너무나도 많이 했습니다. 왜냐하면 제 목소리를 대충 알고 Fs를 정하고 목소리를 녹음해야 정확한 데이터를 비교해볼 수 있었기 때문입니다. 그러나 Fs 차이를 2Hz 씩 두고 5 Hz 씩 두고 (10Hz는 너무 부정확한 것 같았음.) 여러 차례 시도 했음에도 불구하고, 제가 원하는 Data 값을 구할 수 없었습니다. 하지만 예상한 결과와 가장 비슷하게 나온 Data 값을 예로 들어보겠습니다.목소리 녹음 한 후에 axis([ 0.4 0.43 ?1 1]) 로 한 모습Fs= 9000 [Hz] 의 모습입니다.주기구하는 방법 Ⅰ. Data cursor를 이용한 직접 구한 주기는T= 0.0094 sec F= 107 [Hz] 이다.제 목소리가 110Hz 주변인 것을 알고서 Fs 설정.Fs= 9000, 108, 109, 110, 111, 112, 113, 114, 115로 Plot 한 모습.여기서 보면 실제 Frequency는 107 [Hz]로 나왔지만 그래프에서는 108 [Hz]에서 거의 오른쪽 그래프와 비슷한 결과가 나왔습니다.
신호와 시스템 Task Ⅱ1. Each subplot plots sin(2*pi*5*t) for Fs =10, 20, 100[ 그림 1 ]2. Determine which sampling rate is good for plotting the signal.-> Sampling frequency 가 큰 값을 가질수록 원래 함수의 그래프와 비슷한 결과를 가져올 수 있는 것을 위의 [ 그림 1 ] 에서 관찰하였듯이 알 수 있었다. 다만 [ 그림 1 ] 의 첫 번째 그림과 같이 원래의 함수를 못 알아보도록 zero 값으로 plot 하지 않기 위해서는 frequency Sampling 에 신경을 써야 한다. 만약 주기함수인 경우 주기적으로 0을 갖는 값에 대하여 그 주파수를 Sampling 한다면 맨 위의 Plot 그림과 같이 원래의 함수 그래프를 전혀 알아볼 수 없이 모든 함수 값이 zero인 것처럼 그려진다. 결국 알아볼 수 없는 그래프가 Plot 된다. 그러나 무조건 Fs가 클수록 좋은 것은 아니다. Fs 가 클수록 반대로 저장하기에는 용량이 커진다. 저장의 관점에서 보면 정확한 데이터를 저장하기 위해선 Fs 가 높아야하지만 또 반면 용량이 커지기 때문에 무조건 Fs가 커야 하는 것은 아니다.- 1 -3. SSxxTask2.m- 2 -[ 고찰사항 ]맨 처음의 경우는 두 번째와 세 번째 결과와는 달리 sampling한 값이 모두 0이 나와서 원래함수의 모양을 전혀 알아볼 수가 없었다. 그러나 과제를 하는 과정에서 문제가 있었다. 첫 번째 Fs=10 일 때의 plot graph는 axis를 사용하기 전에는 [ 그림 2 ]와 같이 axis 함수를 사용하기 전과 그래프와 전혀 다르게 Plot이 되었다. 명령어를 처음부터 다시 입력해보아도 axis를 사용하는 순간 저렇게 함수값이 0으로 수렴하였다. 너무나 이상했다. axis 함수는 분명 그래프 확대 축소의 역할을 하는 것인데 왜 저렇게 됐는지 궁금했다. 교수님께 메일을 보냈을 때 처음 함수의 목적을 생각해보라 하셨고, 생각해보니 Sampling freq(Fs=10) 자체가 주기가 0.1 이므로 Sin(2*pi*5*t) 함수의 반주기라는 것을 알 수 있었다. 그렇기 때문에, axis함수를 사용한 후인[ 그림 1 ] 와 같이 모두 0이 나와야 한다. ( Sin(2*pi*5*t) 함수의 주기는 1/5. )[ 그림 2 ]그렇다면!!? 설마 상상도 못해본 [ 그림 2 ] 처럼 sin 함수에 pi배에 해당하는 값을 넣었을 때 MATLAB 에서는 함수 값이 0이 아닐 수도 있다!!?상상도 못했지만 예상했던 대로 MATLAB에서 sin(pi), sin(2*pi) 와 같이 사인의 주기에 대한 값을 넣어봤는데, 0이 나오지 않았다. cos 함수도 마찬가지였다. !!!참 신기했다. 왜 0이 아닐까?? 최고의 수학적인 계산을 자랑하는 프로그램이 누구나 아는 그러한 Sinusoidal 함수의 값을 제대로 표현하지 못한다니, 이유를 알아보니 MATLAB의 계산 방법이 미방 쪽으로 계산하고 모든 함수를 polynomial 함수로 만들어 계산하기에 추정치가 나온다고한다. 그래서 결국 Sin 함수는 주기에 따른 함수값이 추정치가 나온다고 하였다.